2

デバッグ中にライブ オブジェクト グラフを表示する Visual Studio パッケージを作成しようとしています。

VS 2010 パッケージ内からマネージ デバッガーのデータにアクセスする方法はありますか? EnvDTE.Debugger API のことは知っていますが、私のユース ケースでは十分なデータが得られません。

WinDbg/SOS を使用して可能であることは知っていますが、適切に統合して使用できるようにしたいので、これはオプションではありません。

どんな情報でも本当にありがたいです!

編集:

私の要件は基本的に次のとおりです。

  1. デバッガーがブレーク モードのときに、現在のスタック フレームのすべてのオブジェクトを取得します。
  2. 特定のオブジェクト (つまり、そのフィールド) によって参照されるすべてのオブジェクトを取得します。
  3. オブジェクトを一意に識別して、複数のオブジェクトが同じオブジェクトを参照している場合に、参照されているオブジェクトが 1 つだけであることを検出する方法があるようにします。
  4. VSデバッガーが接続されている間にこれをすべて実行すると、別のデバッガーを使用して効果的に殺されます...

これまでにわかったこと:

  • EnvDTE.Debugger が要件 2 および 3 を満たしていない
  • シリアライズ可能なオブジェクトでのみ機能するため、デバッガー ビジュアライザーは機能しません。
  • WinDbg は、プロセスに排他的に接続する必要があるため、機能しません。
4

2 に答える 2

1

私が知っていることではありません...要件を正しく理解している場合、これは難しい呼び出しです.CLR Profiler(ソースコードに付属しています!)EnvDTE.Debuggerと何らかの方法で組み合わせる必要がDebugger5あります。

于 2011-09-19T06:47:54.367 に答える
0

Simon Mouriersのコメントで示唆されているように、手動でシリアル化されたDebuggerVisualizerアプローチを採用します。

まだ完全には検証していませんが、これが私がやりたいことを行うための唯一の合理的な方法です。

于 2011-09-23T07:43:17.687 に答える