一、断点指令BKPT
BKPT指令产生软件断点中断,可用于程序的调试。它使处理器停止执行正常指令(使处理器中止预取指)而进入相应的调试程序。
BKPT指令的格式为:BKPT 16位的立即数
![](https://i-blog.csdnimg.cn/direct/4545da965315446292a8e144aaa7dfd4.png)
二、使用BKPT进行软件异常定位
假设异常发生后,全局变量k变成了88,现在想确认具体是什么地方导致k变成了88,可以在程序中可能导致K值更改的地方添加以下代码:
if(k == 88)
{
BKPT(0);
}
之后,在运行代码的时候,假设满足了(k==88)这个条件,则软件运行会停止在某个地方,用于确认软件异常位置。
三、适用场景
适用于v5T体系及以上架构
四、相关资料
参考网址:https://developer.arm.com/documentation/dui0489/c/arm-and-thumb-instructions/miscellaneous-instructions/bkpt#:~:text=The%20BKPT%20instruction%20causes%20the%20processor%20to%20enter,state%2C%20imm%20is%20ignored%20by%20the%20ARM%20hardware.