JNH官网

【ARM】MDK在debug模式下断点的类型

1、 文档目标

了解不同情况下,设置的断点的类型是什么。


2、 问题场景

在debug模式下,经常通过断点去调试代码。但是对于断点的类型不了解,不清楚断点为什么会被进入。不了解在不同语句或者情况下设置的断点是否有不同。


3、软硬件环境

1)软件版本:MDK 5.38a

2)电脑环境:Windows 11

3)外设硬件:无


4、解决方法

断点一共分为三种类型:Access Breakpoint(内存访问断点)、Execution Breakpoint(执行断点)、Conditional Breakpoint(条件断点)。


1)Access Breakpoint(内存访问断点):指定内存访问的模式(读、写、读写)。当读取、写入或访问特定地址时,内存访问断点暂停程序执行或执行命令。程序执行速度不会受到显著影响,因为只有在指定的访问事件发生时才会计算表达式。


2)Execution Breakpoint(执行断点):到达指定的代码地址时触发断点。代码地址必须指向CPU指令的第一个字节。


3)Conditional Breakpoint(条件断点):在设置该类型的断点的时候,需要设置一个条件表达式,当条件表达式为真时,断点就会触发。条件表达式在每条CPU指令执行完毕后都会重新计算,这会大大降低程序的执行速度。

jnh官网 jnh官网 jnh官网 jnh官网 金年会 金年会 金年会 金年会