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

来源:互联网 发布:网络暴力的现状 编辑:程序博客网 时间:2024/06/16 01:04

功能描述:

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

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


我用的最多的场景》

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

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

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

如果添加一个数据断点  设置内存地址为&a  监测内存长度为sizeof(int)   当别处修改a时 就直接命中了


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

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


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


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

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



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


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

0 0
原创粉丝点击