1

如何在 VS 2012 中的类中的所有方法上设置断点。
类似的问题发布在How do I set a breakpoint on each access to a class
但解决方案不适用于 VS2012

4

2 回答 2

0

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

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

于 2013-06-27T09:54:43.500 回答
0

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

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);
            }
        }
    }
}
于 2019-02-05T16:41:39.197 回答