2009-05-29 65 views
0

我在概念上設計一個插件,我很想在這裏。我想要的是能夠在代碼中標記行(類似於如何添加斷點),然後獲取執行時通過它們的跟蹤日誌。而不是設置斷點(因爲它們不在調試器外部工作),我寧願在編譯器內部添加額外的日誌記錄,以便於AST。一個VS插件可以將代碼注入編譯過程嗎?

重點是比較程序的不同運行;它會崩潰,如果我做A但不是如果我做B和大部分代碼應該是相同的,那麼它在哪裏分歧?

現在我正在用文件IO和diff工具來做這件事;它有效,但有點笨拙。

我想這個問題是:這可以做到,有這樣的事情嗎?

回答

1

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

對於僅調試使用,Visual Studio 2010具有「跟蹤點」。這些以與斷點相同的方式添加,但不是停止程序,而是將一些文本輸出到調試輸出。因爲它們被設置在調試器中,所以它們根本不會影響源代碼。

如果要跟蹤發佈版本中的活動,只需將System.Diagnostic.Trace.WriteLine()調用添加到代碼中即可。這些可以使用TraceSwitches進行控制,因此可以在默認情況下禁用它們,只有在需要額外信息來診斷問題時才能打開它們。與Debug.WriteLine()調用不同,它們包含在發佈版本以及調試版本中(默認情況下)。請注意,即使tracewitch被禁用,這些跟蹤調用的開銷也會很小,所以請避免在代碼的性能關鍵區域使用它們。

相關問題