天天看點

xcode反彙編調試iOS模拟器程式(四)自動斷點應用之NSNotificationCenter

知道怎麼檢視後,先看看有什麼實際應用,拿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>

繼續閱讀