[Debug] VisualStudio 数据断点 监控指定内存的写操作

功能描述:

在vs中添加一个数据断点 设置指定的内存地址和内存长度后 如果代码中有对这段内存的写操作 vs会自动断点到对应的代码中

注意:与普通断点不同的是 添加数据断点需要在启动Debug运行程序后 才可以添加(因为添加时要设置内存地址 只有进程启动了才有确定的内存地址)

我用的最多的场景》

在模块A中定义了变量int a = 1; 没有任意地方在修改a的值

经历了几个世纪的运行后 在模块B中访问变量a 发现值已经不是1了。

问题来了:到底是哪里莫名其妙修改了这个变量的值? (一般情况下都是因为内存越界修改了a所在的内存)

如果添加一个数据断点  设置内存地址为&a  监测内存长度为变量a所占内存字节数   当别处修改a时 就直接命中了

--------------------------------------------------------------------------------------------------------

以下阐述该断点的使用方法:

1、debug调试运行程序  在声明变量“int a = 1”的位置打个断点  停在这里(声明了a后  监控的内存地址就确定了)

2、启动数据断点添加界面:工具栏DEBUG > New Breakpoint  >  New Data Breakpoint

     之后就会停在添加界面 输入对应的起始地址(&a)和监控长度(sizeof(int))  并点击OK按钮  如下图所示:

之后 如果别处修改这段内存 编译器会直接命中代码  点击键盘的F5或VS的continue按钮(与其他断点一样) 程序就可以继续执行下去了

(以上是我理解的数据断点 有可能有更多的使用方法或场景 大家可以自己再去搜索一下)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值