知道怎麼檢視後,先看看有什麼實際應用,拿NSNotificationCenter來做實踐吧。
首先在某個容易進入的地方加斷點,并停在那,例如main函數。在gdb或lldb輸入指令,手工添加斷點。如下圖:
輸入的指令如下:
然後continue運作。很快,NSNotificationCenter的斷點就會觸發,是由系統的類調用的。因為是指令行添加的斷點,是以不會被xcode記錄,下次啟動也不會再進入,此時我們需要在xcode裡再加斷點,如下圖,在函數第一行的行号欄單擊,标上藍色斷點标記。
然後,在斷點上右鍵單擊,選擇“Edit Breakpoint...“
按照下圖設定好:
點選”Done“後完成(另一個函數的照樣做就行)。 最後,把Main函數上的斷點去掉,然後重新開機程式。 這時就會看見指令行狂列印log了。
這log有什麼用?呵呵,自己挖掘吧,至少你已經發現好多個non-public API了。
xcode反彙編調試iOS模拟器程式
<a href="http://blog.csdn.net/hursing/article/details/8697654">(一)檢視反彙編</a>
<a href="http://blog.csdn.net/hursing/article/details/8700964">(二)看懂反彙編</a>
<a href="http://blog.csdn.net/hursing/article/details/8721870">(三)檢視Objective-C函數與參數</a>
<a href="http://blog.csdn.net/hursing/article/details/8752235">(四)自動斷點應用之NSNotificationCenter</a>
<a href="http://blog.csdn.net/hursing/article/details/8755491">(五)調試objc_msgSend函數</a>
<a href="http://blog.csdn.net/hursing/article/details/8766487">(六)函數出入口處的處理與局部變量</a>
<a href="http://blog.csdn.net/hursing/article/details/8766719">(七)Debug與Release的差別</a>