如何以这种方式设置断点?

时间:2009-03-31 15:23:00

标签: visual-studio debugging breakpoints

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

提前谢谢, 乔治

4 个答案:

答案 0 :(得分:4)

尝试setting a data breakpoint

在Visual Studio中:

  • 转到调试>>新断点>>新数据断点
  • 输入您要观看的地址(或评估为地址的表达式;例如& foo)
  • 输入要在该地址观看的字节数
  • 单击“确定”,在调试器中运行程序,然后等待!

答案 1 :(得分:2)

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

答案 2 :(得分:1)

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

  

ba w size address

用内存的起始地址替换内存长度和地址。

答案 3 :(得分:1)

您可以set a data breakpoint但在设置此类断点之前,您需要知道您感兴趣的内存位置的地址。通常,我要么在程序开头设置一个断点,要么让调试器挂起,这样我就可以找到我要监视的变量的内存地址,然后设置数据断点。