我一直在我的 Visual C# 2008 RSS Feed 中看到这一点:
http://lincolnfair.net/oldLincolnFair/mad.jpg
我很确定这是 VS 2010 独有的功能,但我想知道是否有办法在 VS 2008 中复制它?
我一直在我的 Visual C# 2008 RSS Feed 中看到这一点:
http://lincolnfair.net/oldLincolnFair/mad.jpg
我很确定这是 VS 2010 独有的功能,但我想知道是否有办法在 VS 2008 中复制它?
与@Relster 类似,我有一个代码片段,其中包含以下内容
#if DEBUG
if( node.Name == "Book" )
System.Diagnostics.Debugger.Break();
#endif
根据node.Name == "Book"
我要测试的条件进行更改。包装器确保#if DEBUG
检查永远不会发布代码。
这也比在 Visual Studio 中使用条件断点快得多。当您使用内置的条件 bp 时,Visual Studio 必须闯入应用程序,暂停所有线程,评估表达式并在每次遇到断点时确定它是否为真。在紧密循环中,这可能是接近完全执行性能和爬行运行之间的差异。
你也可以在 VS 2008 中做到这一点。我敢肯定有很多方法可以做到这一点,但一种方法是右键单击现有断点边缘的红点并选择condition...
,然后给它一个评估为 a 的条件,bool
只有当它是 true 时才会中断. 条件语句应该可以访问设置断点的行范围内的任何内容。
该上下文菜单中还有其他选项,可让您过滤导致中断的原因(例如仅某些线程),根据断点被击中的次数中断,在击中断点时运行宏等。
另一种方法是制定自己的条件并调用:
System.Diagnostics.Debugger.Break();
虽然它可能不像 VS2010 设置断点的方式那样复杂,但您可以用最少的代码开销获得相同的效果。请记住在构建发布代码时将这些东西取出。
注意:在 VS2008 和 VS2005 中,您可以通过设置常规断点(F9 或在 gutter 中双击)来设置条件断点,然后右键单击该断点以设置“条件...”。设置条件断点的功能在 VS2008 Express Edition 中不可用。