2009-05-29 5 views
0

私は、概念的に、私がここに持っていたいと思うプラグインを設計しています。私が望むのは、コード内の行にタグを付けること(ブレークポイントの追加方法など)を実行してから、実行時にトレースログを取得できるようにすることです。ブレークポイントを設定するのではなく(デバッガの外で動作しないため)、コンパイラ内部ではASTのように余分なロギングが追加されます。VSプラグインがコードをコンパイルプロセスに挿入できますか?

主なポイントは、プログラムのさまざまな実行を比較することです。 Aを実行するとクラッシュしますが、Bを実行する場合はそうではなく、ほとんどのコードが同じでなければならないので、どこが分岐していますか?

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

私は質問があると思います:これはできますか?

答えて

1

あなたの説明に正確に合ったものは何も分かりません。ただし、...

デバッグ専用の場合、Visual Studio 2010には「トレースポイント」があります。これらはブレークポイントと同じ方法で追加されますが、プログラムを停止するのではなく、何らかのテキストをデバッグ出力に出力します。デバッガで設定されているため、ソースコードにはまったく影響しません。

リリースビルドでアクティビティをトレースする場合は、コードにSystem.Diagnostic.Trace.WriteLine()を追加します。これらはTraceSwitchesを使用して制御することができるため、デフォルトで無効にすることができ、問題を診断するための追加情報が必要な場合にのみオンにすることができます。 Debug.WriteLine()呼び出しとは異なり、リリースビルドやデバッグビルドには(デフォルトで)含まれています。これらのトレース・コールでは、トレース・スイッチが無効になっていてもわずかなオーバーヘッドがかかります。そのため、コードのパフォーマンスが重大な領域では使用しないでください。

関連する問題