如何根据命中的另一个断点添加条件中断?视觉 C++
Posted
技术标签:
【中文标题】如何根据命中的另一个断点添加条件中断?视觉 C++【英文标题】:How do you add conditional breaking based on another breakpoint being hit? Visual C++ 【发布时间】:2009-05-11 18:47:24 【问题描述】:我有一堆经常使用的通用代码,我想对它们进行深入研究,以处理特定情况下的错误。
所以我想仅在命中其他断点时才在一组断点上中断。有没有办法在 Visual 2005 中做到这一点?我正在使用 C++ 代码。
谢谢!
【问题讨论】:
【参考方案1】:请记住,您可以禁用断点 - 禁用第二个断点,等到第一个断点中断,然后启用断点窗口中的第二个 - 每次调试时只需单击两次鼠标... :)
【讨论】:
【参考方案2】:如果触发逻辑足够复杂,有时我发现添加DebugBreak(); 会更容易。调用源代码。
【讨论】:
【参考方案3】:让您的第一个断点将某个变量的值更改为一个神奇的值(您可以使用条件断点,使用一个更改变量然后返回 true 的表达式)。然后,当变量处于那个神奇值时,让第二个断点中断。例如,
int debug_flag = 0;
第一个断点条件:
debug_flag = 0xdeadbeef, true
第二个断点条件:
debug_flag == 0xdeadbeef
【讨论】:
断点位于许多不同的代码区域。我想我也许可以使用全局变量。我希望有一些方法可以在不修改代码的情况下做到这一点。 是的,您可能会使用全局变量。如果您只使用该全局变量创建一个新的 .cpp 文件,并安排将其链接到您的程序中,则无需修改任何其他代码。【参考方案4】:十年后...
执行 OP 想要的一个简单方法是使用即时窗口定义一个全局变量,并按照@chris-jester-young 的建议在断点条件下使用它。
还是帮了我一把。
【讨论】:
以上是关于如何根据命中的另一个断点添加条件中断?视觉 C++的主要内容,如果未能解决你的问题,请参考以下文章