我试图将相当于asm {int 3}(或类似的)放在我的iPhone程序中.我的目标是让
Xcode完全停止在违规的行上,而不用弄乱调用堆栈(所以_Debugger听起来不会这样做,而不是我可以找到哪个框架…),然后离开我能够恢复执行(这就是为什么我对assert不满意).
(我习惯于其他系统上的这些行为,我想在iOS上重现它们.)
到目前为止,我最好的尝试是:
asm volatile("bkpt 1");
这样就停止了Xcode在线上的问题,但是当我尝试继续使用Cmd Alt P时,Xcode似乎再次运行BKPT.如果我使用Shift Cmd O,我只是得到这个:
Watchdog has expired. Remote device was disconnected? Debugging session terminated.
(不用说,远程设备仍然连接.)
我没有足够的iOS,Mac,ARM,gdb或gcc的asm的经验.所以我已经被困了有没有办法让iOS和Xcode做我想要的?
(我不知道它是否有所作为,但是由我的程序是ARM代码的指令大小来判断.)
[这个问题最初出现在另一个标题下.我已经编辑了,希望能让事情更清楚.]
解决方法
raise(SIGTRAP)是一种相对便携的方式来具有“代码”断点.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。