有条件地设置或编码断点的方法吗?

时间:2010-04-28 13:38:24

标签: debugging language-agnostic conditional breakpoints

我一直在想这个问题 - 有没有办法对断点进行编码/编程......?有条件的?例如,我可以指定类似的内容 - “当变量变为值时,中断并打开调试器”? (当你想调试后期循环值的循环执行时,特别是在长循环中会非常有用。)

我认为这可能是特定于IDE的,因为调试在不同的IDE中以不同的方式实现...我有兴趣知道如何在任何IDE中执行此操作,特别是在Eclipse和Visual Studio中。

5 个答案:

答案 0 :(得分:5)

这在Visual Studio中绝对可行。您通常可以单击左边距以插入断点,然后右键单击该断点。右键单击菜单中的一个选项是“Condition ...”,您可以指定一个谓词,如果符合谓词,它将告诉调试器只有该断点的中断。

答案 1 :(得分:3)

在Visual Studio中,您可以声明性地设置条件断点,它类似于正常断点,但只有在某个条件为真时才会中断。条件可以使用局部变量以及可以从设置断点的位置访问的任何内容。只需右键单击任何断点(红点)并选择“条件...”。

此外,.NET语言可以调用Debugger.Break()方法以编程方式中断执行。这也可以在if声明中完成:

if (count > 8 && Debugger.IsAttached)
   Debugger.Break();

答案 2 :(得分:3)

如果IDE不支持条件断点,请添加if语句并在其中删除。

if (variable == 3) {
    // Stub code to attach breakpoint.
    1 = 1;
}

答案 3 :(得分:2)

在Eclipse中设置条件断点(感谢所有Visual Studio的答案!):

设置断点。右键单击并选择“断点属性...”。选中“启用条件”并在文本区域中输入条件代码。

答案 4 :(得分:1)

出于这个原因,大多数IDE允许条件断点。在Visual Studio中,您可以右键单击边距中断点的红点,然后从那里打开条件对话框。您还可以从Visual Studio中的断点窗口获取条件对话框。我不熟悉Eclipse。