我正在使用Visual Studio 2010,我知道这个功能在C ++中可用。
我需要调试一些代码,将变量更改为多个值。我想在特定情况下调试代码,当变量获得特定值时。我知道我可以添加if(var == value)
,但有没有优雅的方法呢?
另一个问题,我可以在一般情况下更改变量时设置断点吗?
答案 0 :(得分:84)
当然可以将条件设置为接收特定值的变量。这被称为断点条件。要创建一个,请执行以下操作。
现在只有在条件评估为真时才会触发断点。
您要求的第二项,当变量的值因任何原因发生变化时断开,称为数据断点。这些仅适用于C ++代码。它不是C#,VB.NET或任何其他托管语言的选项。
答案 1 :(得分:4)
只要您使用Express以外的Visual Studio版本,就可以使用breakpoint condition在C#中实现此目的。
在“断点条件”对话框中,在“条件”框中输入有效表达式,例如 myLocalVariable> 1
和
...如果要在表达式的值发生变化时中断,请选择已更改。
要进入已更改选项,请在断点窗口中右键单击断点,然后选择条件... ,然后检查下面的截图。
答案 2 :(得分:3)
使用F9添加断点 - 右键单击它并选择"Condition..."
- 现在您可以添加布尔条件,只有当该条件的计算结果为真时才会触发断点。
答案 3 :(得分:3)
这取决于断点的范围。如果变量不是本地变量或非静态变量,则无法进行。
要设置断点的条件,请右键单击它,然后您应该看到此屏幕:
选择条件 ...
答案 4 :(得分:2)
您可以使用条件断点。我知道您的问题是针对VS2010的,但请注意,从VS2012开始,您必须切换到托管兼容模式,才能在Visual Basic中使用条件断点。为什么以及如何描述:
switching-to-managed-compatibility-mode-in-visual-studio-2013
答案 5 :(得分:0)
你可以做这两件事。
var==value
并选择“是真的”。答案 6 :(得分:0)
在VisualStudio代码中,可以如下设置条件断点:
单击装订线以创建红点断点
从左侧工具栏选择“调试”(图标:bug的斜线)
共有四个部分:变量,监视,调用堆栈和断点
扩展断点部分,因此您可以see the breakpoints
右键单击所需的断点
选择Edit Breakpoint...
设置条件,然后按
myvar == 1234
或
'stophere' in myvar
etc
参考文献:
https://code.visualstudio.com/docs/editor/debugging#_conditional-breakpoints