我一直在想这个问题 - 有没有办法对断点进行编码/编程......?有条件的?例如,我可以指定类似的内容 - “当此变量变为此值时,中断并打开调试器”? (当你想调试后期循环值的循环执行时,特别是在长循环中会非常有用。)
我认为这可能是特定于IDE的,因为调试在不同的IDE中以不同的方式实现...我有兴趣知道如何在任何IDE中执行此操作,特别是在Eclipse和Visual Studio中。
答案 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。