如何编程添加对Visual Studio的跟踪点?(How to programatically a

2019-09-27 04:20发布

我要找来监视我的源代码运行程序的方法。 基本上,当用户运行它,我需要知道哪些功能和参数顺序调用。

我可以写一个跟踪输出代码的所有功能,以实现这一目标。 但是,我不能修改源代码。 我发现,跟踪点在Visual Studio 2005可以让我做这件事 - 输出日志信息,而无需修改源。 但我需要把它们添加到的所有功能。

因为我有数以千计的文件和功能,我需要找到一个方法来编程方式做到这一点。 我发现了DTE.Debugger.Breakpoints.Add是能够添加一个断点。 但是,我无法找到任何方式跟踪点。 或者存储为一个项目的断点信息? 我不可能发现它在SLN或vcproj。 或者是有没有办法转换断点以编程方式跟踪点? 我看到,我可以通过更改“当打”属性对话框中手动更改。

谢谢!

Answer 1:

您还可以看看面向方面的编码。 按照我的理解,这将改变由属性控制编译的程序集,通常用于添加跟踪所有方法/属性。

我怎样才能跟踪()添加到C#每个方法调用?



Answer 2:

你应该投你的断点EnvDTE80.Breakpoint2。 然后,你就可以使用

breakpoint.BreakWhenHit = false; 
breakpoint.Macro = "YourMacro";


Answer 3:

.NET程序分析器将让你看到哪些方法执行,每个需要不修改源代码多久。 它基本上注入特殊代码到编译的程序集。



Answer 4:

该解决方案的第一部分:

DTE.ExecuteCommand( “EditorContextMenus.CodeWindow.Breakpoint.InsertTracepoint”)

它打开了其中光标是行TP窗口。 你仍然必须按回车选择OK,虽然。 足够满足我的需求 - 至少你不必用鼠标右键单击等



Answer 5:

我认为这是解决方案...这个宏增加了一个断点程序的主要方法,然后关闭所有的断点为跟踪点。

Sub AddBreakpointToMain()
     Dim bp As EnvDTE80.Breakpoint2
     Dim bps As EnvDTE.Breakpoints


     bps = DTE.Debugger.Breakpoints.Add("Main")
     For Each bp In bps
         bp.Tag = "SetByMacro"
         bp.BreakWhenHit = False
         bp.Message = "Hi, this is your tracepoint calling."
     Next
End Sub


文章来源: How to programatically add a tracepoint for Visual Studio?