2012-02-18 19 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