【问题标题】:How do you add conditional breaking based on another breakpoint being hit? Visual C++如何根据命中的另一个断点添加条件中断?视觉 C++
【发布时间】:2009-05-11 18:47:24
【问题描述】:

我有一堆经常使用的通用代码,我想对它们进行深入研究,以处理特定情况下的错误。

所以我想仅在命中其他断点时才在一组断点上中断。有没有办法在 Visual 2005 中做到这一点?我正在使用 C++ 代码。

谢谢!

【问题讨论】:

    标签: c++ debugging visual-c++ visual-studio-2005 breakpoints


    【解决方案1】:

    请记住,您可以禁用断点 - 禁用第二个断点,等到第一个断点中断,然后启用断点窗口中的第二个 - 每次调试时只需单击两次鼠标... :)

    【讨论】:

      【解决方案2】:

      如果触发逻辑足够复杂,有时我发现添加DebugBreak(); 会更容易。调用源代码。

      【讨论】:

        【解决方案3】:

        让您的第一个断点将某个变量的值更改为一个神奇的值(您可以使用条件断点,使用一个更改变量然后返回 true 的表达式)。然后,当变量处于那个神奇值时,让第二个断点中断。例如,

        int debug_flag = 0;
        

        第一个断点条件:

        debug_flag = 0xdeadbeef, true
        

        第二个断点条件:

        debug_flag == 0xdeadbeef
        

        【讨论】:

        • 断点位于许多不同的代码区域。我想我也许可以使用全局变量。我希望有一些方法可以在不修改代码的情况下做到这一点。
        • 是的,您可能会使用全局变量。如果您只使用该全局变量创建一个新的 .cpp 文件,并安排将其链接到您的程序中,则无需修改任何其他代码。
        【解决方案4】:

        十年后...

        执行 OP 想要的一个简单方法是使用即时窗口定义一个全局变量,并按照@chris-jester-young 的建议在断点条件下使用它。

        还是帮了我一把。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-01-30
          • 2012-07-02
          • 2021-06-29
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多