VSプラグインは、コンパイル処理にコードを挿入することはできますか?

StackOverflow https://stackoverflow.com/questions/928063

質問

私は一種の概念的私がここに持ってみたいプラグインを設計しています。私は何をしたいと思うことは私のコードで(ブレークポイントが追加されているかのようなもの)を行にタグを付け、その後、実行はそれらものの実行したときのトレースログを取得することができることです。 (彼らは、デバッガの外に動作しないので)、ブレークポイントを設定するのではなく、私はコンパイラの内部で、追加のロギングはASTので、むしろ追加されるだろうと。

主な点は、プログラムの異なる実行を比較することであろう。私はではなく、私はBが、コードのほとんどが同じでなければなりませんので、どこが発散されている場合?

Aをすれば、それがクラッシュ

今私は、ファイルIOと差分ツールでこれをやっています。それは動作しますが、少し不器用です。

はこれを行うことができ、このようなものが行われている

:?

私は質問があると思います

正しい解決策はありません

他のヒント

私は正確にあなたの説明に合う何も知りません。しかし...

デバッグのみの使用については、Visual Studio 2010には、 "トレースポイント" があります。これらは、それらの出力は、デバッグ出力にはいくつかのテキストではなく、プログラムを停止するよりも、ブレークポイントと同じように追加されます。それらがデバッガに設定されているので、彼らは、すべてのソースコードには影響を与えません。

あなたがちょうど(System.Diagnostic.Trace.WriteLineを追加し、リリースビルドでの活動をトレースしたい場合は)あなたのコードを呼び出します。これらは、TraceSwitchesを使用して制御することができるので、それらはデフォルトで無効にすることができ、あなたが問題を診断するための追加情報が必要な場合にのみオン。 Debug.WriteLine()とは異なり、彼らがリリースに(デフォルトで)含まれている呼び出すだけでなく、デバッグビルドとして構築します。これらのトレース呼び出しがTraceSwitchにが無効になっている場合でも、小さなオーバーヘッドを要するので、あなたのコードのパフォーマンス重要な領域でそれらの使用を避けるないことに注意してください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top