Xcode的調試之GDB

今天給大家分享一下調試技巧。希望對大家有幫助。

Xcode使用的調試器是LLDB,但是我們仍可以在命令行中使用 GDB 命令來調試我們的程序。下面將介紹一些常用的命令以及調試技巧。
1.po 命令:爲 print object 的縮寫,顯示對象的文本描述(顯示從對象的 description 消息獲得的字符串信息)。
2.print 命令:有點類似於格式化輸出,可以輸出對象的不同信息。
3.info 命令:我們可以查看內存地址所在信息,比如 "info symbol 內存地址" 可以獲取內存地址所在的 symbol 相關信息;比如 "info line *內存地址" 可以獲取內存地址所在的代碼行相關信息。(貌似目前info命令,已經不支持了)。
4.show 命令:顯示 GDB 相關的信息。如:show version 顯示GDB版本信息。(這個命令也不被Xcode支持了)
5.help 命令:如果忘記某條命令的語法了,可以使用 help 命令名 來獲取幫助信息。如:help info 顯示 info 命令的用法。
在系統拋出異常處設置斷點
有時候我們的程序不知道跑到哪個地方就 crash 了,而 crash 又很難重現,保守的做法是在系統拋出異常之前設置斷點,具體來說是在 objc_exception_throw處設置斷點。設置步驟爲:
1.首先在 XCode 按 CMD + 6,進入斷點管理窗口;
2.然後點擊右下方的 +,增加新的 Symbolic Breakpoint,在 Symbol 一欄輸入:objc_exception_throw,然後點擊 done,完成。
這樣在 Debug 模式下,如果程序即將拋出異常,就能在拋出異常處中斷了。比如在前面的代碼中,我讓 [firstObjctcrashTest]; 拋出異常。在 objc_exception_throw 處設置斷點之後,程序就能在該代碼處中斷了,我們從而知道代碼在什麼地方出問題了。
調試器調試
調試器就是介於你編寫的應用程序和操作系統之間的一種程序,可以對你的程序進行控制,如停止,執行,單步跟蹤等。
Xcode使用的調試器是GDB,Xcode除了有GDB外,還有一個微型調試器,它是一個浮動窗口,通過它我們能接跳過GDB調試器做一些簡單的調試工作。
Xcode有一個提供大量概述信息的調試窗口,Xcode提供一個調試控制檯,通過它可以直接向調試器發調試命令。
1.如何用調試器進行調試?
(1)編譯程序時必須使用編譯器的Debug配置,這樣編譯出的程序包含調試信息(調試器要用的信息)
(2)調試時 需要讓程序在調試器模式下運行。
在Xcode中有兩種運行程序的方法:
·Run->run (快捷鍵:command + R), 不用調試器運行程序;
·Run->Go(Debug)或者Run->Debug(快捷鍵:command+Y),使用調試器運行程序。
2.對斷點的操作
如何設置斷點?在邊列(gutter)上單擊就可以設置一個藍色的斷點;在次單擊就disable該斷點;如果要刪除該斷點 就將該斷點拖出邊列。
調試快捷鍵:(Xcode常用快捷鍵)
command+shift+Y 打開調試窗口
command+Y 調試運行程序
command+shift+O 查找

博客推薦:http://www.jianshu.com/p/5a707ac6cdd1
極力推薦http://www.cnblogs.com/daiweilai/p/4421340.html



文/Peak_One(簡書作者)
原文鏈接:http://www.jianshu.com/p/5ce3bd31e599
著作權歸作者所有,轉載請聯繫作者獲得授權,並標註“簡書作者”。

發佈了47 篇原創文章 · 獲贊 16 · 訪問量 13萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章