Xcode除錯技巧

2021-06-17 14:24:21 字數 1764 閱讀 8990

xcode從預設使用lldb後,有很多實用的除錯技巧,這裡簡單介紹一下。

log the called method/func

1

nslog

(@"%s"

,__pretty_function__

);

set breakpoint

1

(

lldb

)breakpoint

set-

n"-[uiview setframe:]"

新增斷點,設定action為sound,然後勾選automatically continue after evaluating。可以簡單地用以確認某些方法是否被呼叫了。

命中斷點後,在lldb中輸入:

print backtrace

1

(

lldb)bt

all

print view hierachy

1

(

lldb)po

[[[[

]delegate

]window

]recursivedescription

]

debugger中,選中nsdata->view memory,會看到一些無法閱讀的資料; 在lldb中,輸入:

print nsdata object to get address

1

(

lldb)po

yourdataobject

會得到yourdataobject的位址,用該位址替換掉memory viewer中的位址,會自動使用合適的encoding。

這在除錯多執行緒應用時格外有用,因為很難保證固定的執行順序。使用這個特性,需要新增dtperfomancesession.framework到xcode project中。

下面的**片段,將在使用instruments時,新增乙個flag:

use dtsendsignalflag to set flags in instruemnts

1

23

#import 

// ...

dtsendsignalflag(,

dt_point_signal

,true

);

你也可以在instruments中顯示開始和結束標誌:

use dtsentsignalflag to set start and end flags

123

4567

89

#import 

// ...

// put this line at the beggining

dtsendsignalflag(,

dt_start_signal

,true

);// ... more code here

// put this at the end

dtsendsignalflag(,

dt_end_signal

,true

);

xcode除錯技巧

有時程式崩潰根本不知錯誤發生在什麼地方。比如程式出現exec bad access的時候,雖然大部分情況使用設定nszombieenabled環境變數可以幫助你找到問題的所在,但少數情況下,即使設定了nszombieenabled環境變數,還是不知道程式崩潰在什麼地方。那麼就需要使用下列 進行幫助了...

Xcode除錯技巧

xcode從預設使用lldb後,有很多實用的除錯技巧,這裡簡單介紹一下。1nslog s pretty function 1 lldb breakpoint set n uiview setframe 新增斷點,設定action為sound,然後勾選automatically continue af...

XCode除錯技巧

xcode7中蘋果為我們增加了兩個重要的debug相關功能。了解之後覺得非常實用,介紹給大家。exc bad access一直是很多開發者的噩夢,因為這個錯誤很不直觀,出現後往往要花很長時間才能定位到錯誤。蘋果這次帶來了革命性的提公升。在專案的scheme中diagnostics下,選中enable...