objective-c - 在iOS私有(private)代码中调试iOS信号异常

标签 objective-c ios xcode exc-bad-access sigabrt

我知道一个相当多的标题。

然而,我似乎不断收到这些神秘的错误,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 技巧。

(进一步说明,此调用跟踪与 ViewController 等相关,因此调试这些的任何指针也会有所帮助)

再次感谢。

最佳答案

打开xCode,按command+6,点击底部的“+”按钮,选择“添加异常断点”,按完成。现在,如果抛出任何异常,xCode 将突出显示抛出该异常的代码行。

关于objective-c - 在iOS私有(private)代码中调试iOS信号异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9343291/

相关文章:

xcode - iOS 11 模拟器 native 应用程序位置

ios - Objective c UIImageView 动画

ios - 您可以将环境变量传递给 xcodebuild 吗?

objective-c - 带有动态字符串的 UIImage 错误

ios - 带有对象映射器的动态键

ios - 两个日期之间的 NSDate

ios - Swift 初始化程序可以有可变参数吗?

iphone - 如何在 OpenGL ES 1.1 (iPhone) 中平滑纹理对象

objective-c - UITableView reloadData 重复数据

ios - 如何创建免费的应用内购买?