如何在VS2010中的每个方法中设置断点

Ger*_*ero 19 c# debugging visual-studio-2010

我有一个更大的(c#)WPF应用程序n-classesm-methods.我想在每个方法中放置一个断点,所以每当我按下我的应用程序中的按钮或任何方法被调用时,我希望VS2010中的应用程序能够达到该断点.我想了解应用程序的流程/进度.

由于我有很多方法,我宁愿不在每个人手动放置一个断点.

是否有任何命令或工具可以在我的VS2010解决方案的任何地方放置断点?

编辑:可能类似于以下插件:http://weblogs.asp.net/uruit/archive/2011/08/04/visual-studio-2010-addin-setting-a-class-breakpoint.aspx

edit2:有一些答案,但它们似乎都不是简单直接的解决方案.还要别的吗?

Ome*_*viv 5

这个答案建议了一个可以按照您的要求进行操作的宏,但我个人的建议是使用分析器 - 一个可以让您动态暂停和恢复分析的宏(几乎所有商业分析器都会这样做),然后点击“在单击按钮之前开始分析”按钮。在探查器中查看调用树通常是了解应用程序正在执行的操作的一种非常方便的方法,比在调试器中单步调试要有效得多。

更新:此功能存在于我正在开发的名为OzCode 的Visual Studio 扩展中。使用 OzCode,当您单击类定义旁边的图标时,您将看到 QuickAction:

为班级中的每个成员添加断点


Vic*_*ani 5

编辑:仅使用C++进行测试

我看到这篇文章展示了如何在类的每个方法的开头设置断点.我已经使用VS 2010对其进行了测试.基本过程(使用Visual C++时)是:

  1. 转到Debug> New Breakpoint> Breakpoint at Function(Ctrl + B).
  2. 在" 函数"字段中,插入MyClass::*
  3. 这将在Breakpoints窗口中显示为单个断点,但是一旦MyClass遇到其中一个方法,您将在每个函数的开头看到一个断点MyClass,并且所有这些都将是"子节点". " 断点"窗口中的原始断点.

我想这也适用于C#.

  • 经过一番搜索,我找到了[这个答案](http://stackoverflow.com/a/15028569/504611).其中一条评论说这种方法只适用于C++.为误导性答案道歉. (5认同)

Luk*_*ley -1

System.Diagnostics.Debugger.Break()您可以在进入您的方法时使用。

类似这样的东西也许与您在范围内设置的布尔值有关?

#if DEBUG
  if (BreakPointEveryMethod)
    System.Diagnostics.Debugger.Break();
#endif
Run Code Online (Sandbox Code Playgroud)

当然也会有一种快速的方法来添加它,notepad++但我不确定是否有一种快速而简单的方法可以让您通过简单的命令行来实现这一点。