2012-07-17 34 views
2

注:Launch installed app on tethered iPhoneGDB:传递EXC_BAD_ACCESS信号到程序

我有一个情况我需要捕获所有信号,特别是EXC_BAD_ACCESS用于在碰撞处理程序使用:这个问题从另一个问题,我问了一下iPhone发起茎。当GDB连接到进程时,它会处理信号并中断,而不是让程序处理它。

GDB的命令是handle all noprint pass nostop,它应该将所有信号传递给程序并且不会中断。这适用于我尝试过的所有信号,除了EXC_BAD_ACCESS,即使它列在其信号列表中。

现在i386达尔文6.3.5版本的GDB也有命令dont-handle-bad-access 1。如果我打开它并触发信号,GDB会成功传递程序中变成SIGBUS的信号。

现在为我的问题症结所在。我正在远程调试连接的iPhone。使用的GDB版本是ARMV7 6.3.5版本,不幸的是没有dont-handle-bad-access命令。如果我离开handle all noprint pass nostop命令并触发崩溃,则调试器会挂起,如果我保留默认值,调试器将捕获信号,并且我的信号处理程序从不输入。

有没有办法正确获取这个版本的GDB传递EXC_BAD_ACCESS信号,或者是否有办法触发任何类型的崩溃或中断的行动(在这种情况下,我可以发信号SIGBUS或至少退出程序)。

+0

我不知道任何苹果东西,但我用gdb很好,而且没有其他人在回答,所以如果你通过发布gdb在这种情况发生时打印的所有内容来帮助我,我会采取一些措施。 – 2012-07-26 18:33:06

回答

0

这是一种变通方法,使用设定处理所有印刷路径将对不停止和监控错误流,如果你看到这样Program received signal ...行,杀进程GDB-手臂苹果达尔文

相关问题