最近在开发一个比较复杂的项目,使用了许多assert宏来进行断言防御式编程,但是有的时候发现许多数据被修改了并非自己期望的值。有的时候也不可能为所有数据都提高读写接口封装来控制,这里就需要使用到数据断点来判断数据什么时候被改写了。
MSDN参考文档
https://msdn.microsoft.com/en-us/library/350dyxd0(v=vs.100).aspx
一.使用数据断点的条件
首先数据断点只支持Native code 也就是C/C++开发的代码,而且只能在调试模式下才能设置(程序运行了才能知道你想关注的变量地址)
如果有C#和C/C++混编的项目,也只有C/C++部分的代码支持数据断点。
二. 如何设置数据断点,这里以一个项目中的例子。
1. 首先以非调试模式启动项目主进程
2. 选择Debug->Attach to Process 将调试器挂到进程上
3. 在Attach to Process对话框中选择要Attach的进程,Select Code Type中选择Native.