我要找来监视我的源代码运行程序的方法。 基本上,当用户运行它,我需要知道哪些功能和参数顺序调用。
我可以写一个跟踪输出代码的所有功能,以实现这一目标。 但是,我不能修改源代码。 我发现,跟踪点在Visual Studio 2005可以让我做这件事 - 输出日志信息,而无需修改源。 但我需要把它们添加到的所有功能。
因为我有数以千计的文件和功能,我需要找到一个方法来编程方式做到这一点。 我发现了DTE.Debugger.Breakpoints.Add是能够添加一个断点。 但是,我无法找到任何方式跟踪点。 或者存储为一个项目的断点信息? 我不可能发现它在SLN或vcproj。 或者是有没有办法转换断点以编程方式跟踪点? 我看到,我可以通过更改“当打”属性对话框中手动更改。
谢谢!
您还可以看看面向方面的编码。 按照我的理解,这将改变由属性控制编译的程序集,通常用于添加跟踪所有方法/属性。
我怎样才能跟踪()添加到C#每个方法调用?
你应该投你的断点EnvDTE80.Breakpoint2。 然后,你就可以使用
breakpoint.BreakWhenHit = false;
breakpoint.Macro = "YourMacro";
.NET程序分析器将让你看到哪些方法执行,每个需要不修改源代码多久。 它基本上注入特殊代码到编译的程序集。
该解决方案的第一部分:
DTE.ExecuteCommand( “EditorContextMenus.CodeWindow.Breakpoint.InsertTracepoint”)
它打开了其中光标是行TP窗口。 你仍然必须按回车选择OK,虽然。 足够满足我的需求 - 至少你不必用鼠标右键单击等
我认为这是解决方案...这个宏增加了一个断点程序的主要方法,然后关闭所有的断点为跟踪点。
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