代码之家  ›  专栏  ›  技术社区  ›  Luís Guilherme

Visual C++ 2008 Express的条件调试

  •  1
  • Luís Guilherme  · 技术社区  · 16 年前

    在VisualC++ 2008 Express中是否有调试代码的方法,例如,我可以监视某个变量的值,当它假定这个值时,它会被破解吗?

    x 变成 5 . 在gdb中,我会设置一个断点,然后设置一个条件 x == 5 . 在Visual C++ 2008 Express上如何做(如果可能的话)?

    4 回复  |  直到 16 年前
        1
  •  3
  •   Community Mohan Dere    9 年前

    尽管express版本中缺少对它的内置支持,但有另一种解决方法。

    我在一个类似问题的另一个答案上发现了这一点。

    #if DEBUG
    if( node.Name == "Book" )
        System.Diagnostics.Debugger.Break();
    #endif
    

    该示例显示,如果Name属性与“Book”匹配,则会出现断点。

    原来的问题是:

    How Do I: Create a Breakpoint Using Conditions? [C# Express]

        2
  •  2
  •   Matt Greer    16 年前

    这在Visual Studio的快速版本中是不可能的。但在完整版本中是可能的。

        3
  •  0
  •   Luís Guilherme    16 年前

    即使在express中,似乎也有可能做到这一点,至少在这里它起到了作用。在标记断点之后,我右键单击了它的标记,并设置了一个“条件”(再简单不过了)

    !Setting a condition

    然后您可以编写一个计算结果为true的表达式。我的同事刚刚向我展示了这一点,他说他们在使用它来比较字符串时遇到了一些问题,但对于使用int进行简单的比较来说,它非常简洁。

    !Condition window

        4
  •  -2
  •   Peter Mortensen Pieter Jan Bonestroo    13 年前

    幸运!Visual Studio C/C++的Express确实支持它。看见 How to: Specify a Breakpoint Condition

    我试过了。