在iOS 6.1上的指令“svc 128”之后接收信号SIGTRAP

时间:2013-04-23 00:23:17

标签: ios assembly arm

每隔一段时间,在iPad(OS 6.1.3,SDK 6.1)上调试应用程序时,程序会在收到SIGTRAP信号后暂停。我首先注意到stat函数内部发生了这种情况(来自/usr/include/stat.h),但它也发生在其他一些地方,例如semwait_signal(来自nanosleep)。最明显的模式是它总是在运行指令svc #128后立即发生。在stat的情况下,它返回0并且没有错误,因此它似乎不表示任何类型的失败状态。

有没有其他人经历过这个,或者知道如何解决这个问题?

谢谢!

1 个答案:

答案 0 :(得分:1)

不幸的是,我没有发现为什么这些基本功能正在引发SIGTRAP,但是当我修复了iOS项目的更大问题时,这种症状就消失了。

我链接的app目标和静态库目标没有一致地定义预处理器宏_DEBUG,它生成了一些奇怪的程序集。他们具有相同的优化级别,但显然包含/排除_DEBUG造成了足够的差异而导致问题。