我该如何等效于x86软件中断:
asm( "int $3" )
在ARM处理器(特别是Cortex A8)上生成一个事件,该事件将中断gdb下的执行?
最佳答案
ARM没有定义特定的断点指令。在不同的操作系统中可能会有所不同。在ARM Linux上,在ARM模式下通常是UND操作码(例如FE DE FF E7
),在Thumb中通常是BKPT(BE BE
)。
对于GCC编译器,通常可以使用__builtin_trap()
内部函数生成特定于平台的断点。另一个选项是raise(SIGTRAP)
。
关于debugging - 如何在ARM处理器上设置软件断点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11345371/