劳德巴赫调试器断点操作

一:断点的分类

1.按照实现原理可以将断点分为软件断点、硬件断点合ETM断点

①软件断点:调试器在对应的地址处,将指令改写为HLT指令在RAM、DDR等区域,

可以设置无限个断点

Flash、ROM等区域无法使用。

②硬件断点:

与芯片内核相关,调试器设置对应的断点寄存器

可以应用于Flash、ROM、RAM等区域

断点数量有限

③ETM断点

ARM部分芯片特有,Cortex-M系列没有

调试器通过设置ARM Coresight ETM寄存器来实现

用于扩展Onchip断点的功能,例如地址范围断点、数据断点等数量有限、断点有一定的延时

2.按照断点的使用场景可分为

①程序断点(Program Breakpoints)

程序断点,可以是软件(Soft)断点,也可以是硬件(Onchip)断点

当程序运行到指定位置时,停下CPU(内核)

最常用的断点

②读写断点(Read/Write Breakpoints)

读写断点只能是硬件(Onchip)断点

当指定内存/变量,发生读写行为时,停下CPU(内核)      

③数据断点(Data Breakpoints)   

数据断点只能是硬件(Onchip)断点

当指定内存/变量,发生读写指定值时,停下CPU(内核)

 ④高级断点(Advanced Breakpoints)

i)COUNT计数断点

统计断点命中的次数,当满足

一定次数时,停下CPU/内核

ii)条件断点

CONDITION条件

断点成立时,还需要满足特定的条件

CMD命令

当所有条件成立,执行预先定义好的脚本

3.按断点对CPU运行的影响,可以分为:

①实时/非侵入式断点(Real-time Breakpoint)

断点在判断过程中,对CPU的实时运行,没有影响断点会以实心竖线|显示

②侵入式断点(Intrusive Breakpoint)

断点在判断过程中,对CPU的运行有影响,会不断停下CPU进行判断

二:如何下断点

1.方法一:在源码窗口找到需要设置程序断点的位置,直接双击打断点

2.方法二:在符号表信息中找到需要设置程序断点的函数,右键Breakpoints-Program

3.方法三:在断点设置窗口进行设置

4.方法四:命令行设置,简单快捷普通断点

5.使用通配符,批量设置断点

四:如何设置断点

1.程序断点实现原理的修改(Soft↔Onchip)

对于只能是Onchip断点的场景,调试器会默认设置:例如flash区域的程序断点、读写断点、数据断点等

对于RAM/DDR区域的程序断点,可以这样切换实现方式

2.程序断点(区间)的设置

例如,设置程序断点,当CPU运行到一个区间范围内停下来

部分芯片内核,不支持使用地址范围设置断点 这时候可以使用ETM断点

3.读写断点的设置

方法一:在源码窗口找到需要设置读写断点的变量,右键Breakpoints,选择断点类型

方法二:

在符号表信息中找到需要设置读写断点的变量,右键Breakpoints

方法三:从断点设置窗口开始设置

方法四:使用命令设置读写断点

4.数据断点的设置

方法一:从断点设置窗口开始设置

方法二:使用命令设置读写断点

数据断点(bit断点)的设置

一个变量发生写,并且特定的几个bit为特定的值时,触发断点生效,停下CPU

5.高级断点的设置

五:CPU没有停下来能否设断点?

六:为什么断点不能命中?

符号表与代码不匹配

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值