1

我想设置一个断点,并希望在一块内存(开始地址和长度已知)发生更改时触发它。我正在使用 Windows Server 2003 x64 平台。Windbg 中的解决方案或 Visual Studio 中的解决方案都可以。我的目的是监视内存内容何时发生变化。

提前谢谢,乔治

4

4 回答 4

4

尝试设置数据断点

在 Visual Studio 中:

  • 转到调试>>新断点>>新数据断点
  • 输入您要查看的地址(或计算结果为地址的表达式;例如 &foo)
  • 输入要在该地址观看的字节数
  • 单击确定,在调试器中运行您的程序,然后等待!
于 2009-03-31T15:24:11.477 回答
2

这也可以在 GDB 中完成。在 GDB 中,这是对特定地址的监视(我已经成功地以这种方式在 C++ 对象成员的地址上设置监视)。

于 2009-03-31T15:30:36.173 回答
1

不确定VS,但是使用windbg可以使用以下命令

ba w 大小地址

将 size 替换为内存的长度,将 address 替换为内存的起始地址。

于 2009-03-31T15:25:02.550 回答
1

您可以设置数据断点,但您需要知道您感兴趣的内存位置的地址,然后才能设置这样的断点。通常,我要么在程序的开头设置断点,要么让调试器在附加时挂起,这样我就可以找到要监视的变量的内存地址,然后设置数据断点。

于 2009-03-31T15:28:50.170 回答