【问题标题】:Visual studio 2008 debugging; breaking when values are being writenVisual Studio 2008 调试;在写入值时中断
【发布时间】:2013-10-10 09:43:54
【问题描述】:

我有一个问题是一个非常讨厌的错误(在 100k 行代码中)并在代码中找到更改某个地址的内存中的值(不应该发生)的代码行。

问题是我不知道这发生在哪里。

知道当某些内存地址的值发生变化时,我如何创建断点或其他东西来破坏该代码行上的程序(正在进行更改)?

谢谢。

【问题讨论】:

    标签: c++ debugging visual-studio-2008


    【解决方案1】:

    在调试下,创建一个数据断点。一旦内存的数据被更改,您就可以让它中断(但您不能在读取访问时中断)。

    你必须运行代码,然后输入要监视的内存地址和长度(所以在设置内存时中断)。

    【讨论】:

    • 好吧,我做到了,我找到了罪魁祸首,唯一的问题是在调试中我有源代码的一些 dll bult 的反汇编中发生了中断,无论如何我可以将该地址反转为一行代码吗?
    • 你应该有一个调用堆栈。试着看看那个。除此之外,您没有其他指针可能来自哪里。
    • 我想我知道是什么弄乱了我的代码 thnx :) 这是一些流浪的 memcpy。
    【解决方案2】:

    您可以设置数据断点,当内存位置的值发生更改时会中断执行。我认为您最多可以设置四个这样的数据断点。在这里你可以找到instructions

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多