2011-12-23 10 views
3

数年前にPostsharpトレースプログラムフロー実行中にを使用しましたが、手動でトレースステートメントを追加する必要はありません。C#でプログラムフローをトレースするための現在の可能性はありますか?

同様に出力をデバッグするために実行をトレースする新しい方法はありますか?

(機器に組み込まれてアセンブリを必要としません好ましく方法。多分ことはできませんが?)

+0

C#_always_の[aspect-oriented programming](http://en.wikipedia.org/wiki/Aspect-oriented_programming)には、コンパイルされたコードの後処理が必要です。 –

答えて

3

デバッグ時にのみこの機能が必要な場合は、Microsoft IntelliTraceがVisual Studio 2010 Ultimateの一部であり、Sergey VlasovのRunTime Flowがあります。前者はあなたのプログラムを非常に遅くします。後者を試していない。

+0

私は究極のエディションを使用しているので、IntelliTraceは間違いなく面白いです。ありがとう! –

+0

Intellitraceはナビゲートするのが少し難しいと感じていますが、ここにあるすべてのデベロッパーコンピュータで利用できるので完全に適合しています。すばらしいです! ありがとう! :) –

3

Gibraltar PostSharpを使用していますが、あなたのプログラムの流れを可視化するための非常に強力なクライアントを提供します。また、スナップショットを比較したり、統計を表示することもできます。残念ながら、それは無料ではありません:)

さらに、ほとんどの依存性注入フレームワーク(Unity、Windsor、Ninject、...)はメソッドの代行を行います。ほとんどの場合、app.configファイル内でトレースされたメソッドを定義できます。しかし、私はPostSharpを好む:

+0

ジブラルタルが計装されたプログラムにどれだけのオーバーヘッドを追加した経験がありますか? –

+0

No:\しかし、事実上、PostSharpはアセンブリを変換するため、最小限のオーバーヘッドが必要です。私は彼らがデータ転送のための非同期の方法でTcp/UdpClientを使用すると思います。 – Matthias

+0

ジブラルタルのコンセプトは非常に興味深いようです。私は近い将来にいくつかの合理的なプロジェクトのためにそれを試してくれることを確かめます。ありがとうございました! :) –

関連する問題