ios - 在 iOS 6.1 上指令 "svc 128"后接收信号 SIGTRAP

标签 ios assembly arm

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

还有其他人经历过这种情况,或者知道如何解决它吗?

谢谢!

最佳答案

不幸的是,我没有发现这些基本函数到底为何会引发 SIGTRAP,但当我修复了 iOS 项目的更大问题后,这种症状就消失了。

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

关于ios - 在 iOS 6.1 上指令 "svc 128"后接收信号 SIGTRAP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16158922/

相关文章:

ios - touchesBegan 不触发

ios - SpriteKit 纹理图集生成器错误 2048 x 2048

c++ - Windows 和 Linux (x86) 上的相同二进制代码

docker - 如何通过命令行在Debian上构建嵌入式Atmel Studio项目

arm - 如何使用有序提交来进行load-> store重新排序?

ios - 如何在 iOS 中将生动的文本向上移动?

ios - registerForRemoteNotifications在iOS9上有效,在iOS8上失败

c - 访问整数最低有效位的最快方法?

c++ - 堆栈上的线程返回地址是什么?

c - 为什么xilinx使用指针将数据存储为数组?