[watchpoint]

定义

Watchpoint(观察点)是一种强大的调试工具,允许开发者在特定内存地址被访问(读取或写入)时暂停程序执行,非常适合调试内存相关的问题。

类型

在这里插入图片描述

使用

gdb

# 监控变量写入
(gdb) watch <variable>

# 监控内存地址写入(0x7fffffffde40 为例)
(gdb) watch *(int*)0x7fffffffde40

# 监控读取行为
(gdb) rwatch <variable>

# 监控读写行为
(gdb) awatch <variable>
# 条件触发(仅当 var == 5 时触发)
(gdb) watch var if var == 5

# 查看当前观察点
(gdb)
 info watchpoints

# 自动执行命令后继续
(gdb) commands <watchpoint_num>
>
print backtrace
>
continue
>end

嵌入式C

ARM Cortex-M 的 DWT 单元

// 硬件配置示例(STM32 HAL)
CoreDebug->DEMCR |= CoreDebug_DEMCR_TRCENA_Msk;  // 启用跟踪
DWT->COMP0 = (uint32_t)&critical_var;           // 监控变量地址
DWT->FUNCTION0 = (0x3 << 4) | 0x1;             // 读写监控+启用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值