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