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