如何在Visual Studio中设置条件断点?


Answers:


174

照常设置断点。右键单击它。单击条件。


1
在VS 2015中,您需要将鼠标悬停在断点上并单击齿轮图标以设置条件
mark.monteiro 2015年

您的意思是,右键单击,设置条件,得到“断点条件失败”错误。.不是吗?
Toby Caulk,

1
答案还应包括条件语句的语法或信息链接。
安德鲁

50

使用Express Edition时,您可以尝试以下操作:

#if DEBUG
    if( fooVariable == true )
        System.Diagnostics.Debugger.Break();
#endif

if语句确保在发行版中不会出现breakepoint。


3
这具有很大的性能/节省时间的优势。我正在遍历我的程序中的每个潜在的int'id'(仅约350万),这只需要几秒钟。我试图使用条件断点,但由于它不在条件分支中,因此将执行速度减慢到几分钟后我将终止调试会话的程度。使用编译的断点可以使其瞬间完成。
金鱼三明治

35

Visual Studio为条件断点提供了许多选项:

要设置这些

  1. 设置一个断点。
  2. 右键单击断点,然后在弹出菜单中选择适合您的选项。

这些选项如下:

  • 您可以根据提供的代码表达式来设置条件(从弹出菜单中选择“ 条件 ”)。例如,您可以指定该foo == 8表达式或其他表达式。
  • 您可以使断点被击中一定次数后触发。(从弹出菜单中选择“ 命中计数 ”)。这是一个有趣的选择,因为您实际上不仅仅局限于击中某个命中数,而且您还可以选择其他几种情况。我将留给您探讨各种可能性。
  • 您可以在进程ID,线程ID和机器名称上设置过滤器(从弹出菜单中选择“ 过滤器 ”)


9
  1. 在行上设置断点
  2. 右击红色球
  3. 选择条件性断点
  4. 设置条件

8

编写实际条件可能是棘手的部分,所以我倾向于

  1. 设置一个常规断点
  2. 运行代码,直到第一次遇到断点。
  3. 使用立即窗口(Debug> Windows> Instant)测试您的表情
  4. 右键单击断点,单击条件,然后粘贴到表达式中

使用立即窗口的优点:

  • 它具有IntelliSense
  • 您可以确定在对表达式求值时表达式中的变量在范围内
  • 您可以确定表达式返回true或false

当代码引用名称为“ Setting”的表时,此示例中断:

table.GetTableName().Contains("Setting")


4
  1. 像往常一样设置断点
  2. 右键单击断点,然后选择“条件”
  3. 您会看到一个对话框,显示“断点条件”
  4. 在字段中输入一个条件,例如“ i == 5”

断点只会在我5岁时命中。


4
  1. 照常设置断点。
  2. 右键单击断点标记
  3. 点击“条件...”
  4. 写一个条件,可以使用变量名
  5. 选择“是”或“已更改”

4

在Visual Studio 6.0上

Alt+ F9


1
-1)在VS 2012中不起作用2)这个问题已经有很多其他(更好)的答案,并且3)到底谁在乎VS 6.0(1998年发布)?4)即使某人关心VS 6,问题是标签与.net其中没有支持,直到VS(Visual Studio .NET中)的下一个版本
蒂姆梅多拉

7
好吧,其他答案在VS 6.0上不起作用。所以我发布了一个解决方案。
Vorac

1

像平常一样设置breakpoint,右键单击断点并选择condion选项并设置条件。


1

创建一个条件函数断点:

  1. 在“断点”窗口中,单击“新建”以创建一个新的断点。

  2. 在功能选项卡上,为功能键入反向。为行键入1,为字符键入1,然后将语言设置为基本。

  3. 单击条件,并确保已选中条件复选框。键入instr.length > 0条件,请确保已选择为true选项,然后单击确定。

  4. 在“新建断点”对话框中,单击“确定”。

  5. 在调试菜单上,单击开始。


0

如果您来自Google,那么此答案可能就是您要搜索的内容。

  1. 单击调试>新建断点>函数断点 在此处输入图片说明

  2. 选择条件断点。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.