本文從以前做的幻燈中整理而來的,主要講一下xcode結合lldb除錯命令以及objc執行時的除錯技巧。
1、optimize,debug和release判定
2、i386與x86_64,模擬器環境判定
3、__iphone_8_0等,編譯sdk的判定
4、使用-d編譯器選項為編譯target追加巨集定義
5、nop,空語句
1、po,輸出物件資訊
2、p,輸出變數的值
3、call,執行一段**
4、bt,列印呼叫棧
1、乙個斷點可以做些什麼事情?
2、異常斷點
3、符號斷點
4、記憶體斷點
以上這些除錯手段雖然看起來比較簡單,但只要靈活運用,就可以為除錯帶來很多便利和可能性。
比如下面乙個例子
圖中有三個變數a,b,c。只要在nop語句加入乙個執行call命令的條件斷點,通過調節斷點的開閉,就可以在程式執行時動態的控制a,b,c的數值。這使得不用編寫除錯**,就可以模擬各個狀態,動態的除錯程式分支。
此外,當程式發生異常時,一般是通過控制台報錯資訊,被動的定位問題所在。如果使用除錯命令結合objc的執行時,可以主動的獲知發生異常的狀態。在mrc開發的時代,對於多次釋放物件的問題,甚至可以一定程度的將殭屍物件還原回原始的物件,從而定位問題所在。
所以只要靈活的運用上面這些除錯手段,相信您也會很快成為乙個除錯高手。
xcode除錯技巧
有時程式崩潰根本不知錯誤發生在什麼地方。比如程式出現exec bad access的時候,雖然大部分情況使用設定nszombieenabled環境變數可以幫助你找到問題的所在,但少數情況下,即使設定了nszombieenabled環境變數,還是不知道程式崩潰在什麼地方。那麼就需要使用下列 進行幫助了...
Xcode除錯技巧
xcode從預設使用lldb後,有很多實用的除錯技巧,這裡簡單介紹一下。log the called method func 1 nslog s pretty function set breakpoint 1 lldb breakpoint set n uiview setframe 新增斷點,設...
Xcode除錯技巧
xcode從預設使用lldb後,有很多實用的除錯技巧,這裡簡單介紹一下。1nslog s pretty function 1 lldb breakpoint set n uiview setframe 新增斷點,設定action為sound,然後勾選automatically continue af...