我现在一直在我的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 ... ,然后给它一个评估为 bool 的条件,只有当这是真的时才会中断。条件语句应该可以访问设置断点的行中的任何内容。

在该上下文菜单中还有其他选项允许您过滤导致中断的内容(例如仅某些线程),根据断点被击中的次数中断,在遇到断点时运行宏,等

另一种方法是制定自己的条件并使用以下呼叫:

System.Diagnostics.Debugger.Break(); 

虽然它可能不像VS2010设置断点那样复杂,但您可以用最少的代码开销获得相同的效果。只需记住在构建发布代码时将其删除。

注意:在VS2008和VS2005中,您可以通过设置常规断点(F9或在装订线中双击)设置条件断点,然后右键单击该断点以设置“条件...”。 VS2008 Express Edition中不提供设置条件断点的功能。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top