2009-05-29 64 views
0

我在概念上设计一个插件,我很想在这里。我想要的是能够在代码中标记行(类似于如何添加断点),然后获取执行时通过它们的跟踪日志。而不是设置断点(因为它们不在调试器外部工作),我宁愿在编译器内部添加额外的日志记录,以便于AST。一个VS插件可以将代码注入编译过程吗?

重点是比较程序的不同运行;它会崩溃,如果我做A但不是如果我做B和大部分代码应该是相同的,那么它在哪里分歧?

现在我正在用文件IO和diff工具来做这件事;它有效,但有点笨拙。

我想这个问题是:这可以做到,有这样的事情吗?

回答

1

我不知道任何完全符合你的描述的东西。但是...

对于仅调试使用,Visual Studio 2010具有“跟踪点”。这些以与断点相同的方式添加,但不是停止程序,而是将一些文本输出到调试输出。因为它们被设置在调试器中,所以它们根本不会影响源代码。

如果要跟踪发布版本中的活动,只需将System.Diagnostic.Trace.WriteLine()调用添加到代码中即可。这些可以使用TraceSwitches进行控制,因此可以在默认情况下禁用它们,只有在需要额外信息来诊断问题时才能打开它们。与Debug.WriteLine()调用不同,它们包含在发布版本以及调试版本中(默认情况下)。请注意,即使tracewitch被禁用,这些跟踪调用的开销也会很小,所以请避免在代码的性能关键区域使用它们。

相关问题