如何在VS 2012中为类中的所有方法设置断点

本文关键字:有方法 断点 设置 VS 2012 | 更新日期: 2023-09-27 18:20:02

如何在VS 2012中为类中的所有方法设置断点。
类似的问题发布在"如何在每次访问类时设置断点"上
,但解决方案不适用于VS2012

如何在VS 2012中为类中的所有方法设置断点

您可能会考虑使用Debugger.Break并将其注入到要分析的每个方法中。

注入可以通过手工或AOP编程等机制完成。

您可以在类定义中定位插入符号,并为Visual Commander调用以下命令(语言:C#)以在所有方法上设置断点:

using EnvDTE;
using EnvDTE80;
public class C : VisualCommanderExt.ICommand
{
    public void Run(EnvDTE80.DTE2 DTE, Microsoft.VisualStudio.Shell.Package package) 
    {
        EnvDTE.TextSelection ts = DTE.ActiveWindow.Selection as EnvDTE.TextSelection;
        if (ts == null)
            return;
        EnvDTE.CodeClass c = ts.ActivePoint.CodeElement[vsCMElement.vsCMElementClass]
                    as EnvDTE.CodeClass;
        if (c == null)
            return;
        foreach(EnvDTE.CodeElement e in c.Members)
        {
            if(e.Kind== vsCMElement.vsCMElementFunction)
            {
                EnvDTE.TextPoint p = (e as EnvDTE.CodeFunction).GetStartPoint();
                DTE.Debugger.Breakpoints.Add("", p.Parent.Parent.FullName, p.Line);
            }
        }
    }
}