在我自己开发的断言宏中,我一直在iOS设备上使用asm(“陷阱”)(或在iOS模拟器上使用asm(“int3”)来打破调试器。但是,在设备的64位版本中,我得到陷阱指令的“无法识别的指令助记符”。有没有arm64的等价物?
(像__builtin_trap()或raise(SIGINT)这样的替代品可以工作,但有一些我不喜欢的行为;前者不会让你继续经过休息,而后者是一个功能所以你总是下面的一步,当你休息时,你需要在堆栈中。)
答案 0 :(得分:9)
我能够使用asm("svc 0");
进入调试器(并在之后继续)。我不确定这是正确的方式,但它似乎可以完成这项工作。