2012-02-18 23 views
0

我知道很多標題。在iOS私人代碼中調試iOS信號例外

但是,我似乎不斷收到這些神祕的錯誤&所有的GDB顯示我是蘋果代碼的行號已經過去了。即

0x028235bd <+0025> jne 0x28235dd <_ZN2CA5Layer15collect_layers_EPNS0_17CollectLayersDataE+57> 
0x028235bf <+0027> mov 0x4(%eax),%ecx 
0x028235c2 <+0030> test %ecx,%ecx 
0x028235c4 <+0032> js  0x28235dd <_ZN2CA5Layer15collect_layers_EPNS0_17CollectLayersDataE+57> 
0x028235c6 <+0034> mov 0x8(%ebp),%edx 
0x028235c9 <+0037> mov 0x78(%edx,%ecx,4),%edx   <---- EXC_BAD_ACCESS 

我只是想迭代,我知道上面我知道一個釋放的對象再次被訪問。然而,問題是如何在我沒有堆棧跟蹤或者甚至是寄存器值的情況下進行調試?

它不只是EXC_BAD_ACCESS,還包括SIGABRT錯誤,否則我可以使用NSZombieEnabled技巧。

(如進一步的說明,該呼叫跟蹤有關ViewControllers之類的,所以這些調試任何指針將是有益的太)

再次感謝。

回答

1

打開xCode,按下命令+ 6,點擊底部的'+'按鈕,選擇添加異常斷點,按完成。現在,如果拋出異常,xCode將突出顯示拋出它的代碼行。

+0

我試過這個,它不起作用。它在拋出異常的那一刻暫停。然而,我不明白爲什麼拋出異常。 (我被帶回main.m,沒有寄存器值) – Ryan 2012-02-18 17:23:55