0

DIA SDK と DbgEng (DbgHelp ではない) は、COM ベースの API と DbgHelp に基づいていますか?

もしそうなら、どうすれば C# アプリケーションから DbgEng API を呼び出すことができますか? idl ファイル (生成された tlib ファイルの tlibimp) を使用して DIA ライブラリを C# プロジェクトにインポートできますが、DbgEng には IDL ファイルがありません。

Managed C++ を使用して API を手動でラップするDbgEngの不完全なラッパーを見たことがありますが、多くの機能が欠落しています。マネージ ラッパーを作成せずに C# で DbgEng.DLL を自動的にインポートできますか?

第 2 に、DIA SDK では、DbgEng のように、プロセスをアタッチしてメモリを調査 (および式を評価) することができますか、それとも pdb ファイルからシンボルを取得するだけですか? これまでのところ、pdbファイルのみを解析するDia2dumpが唯一の例です。

4

2 に答える 2

1

これは逆です。dbghelp は DIA に基づいています。

于 2009-06-10T15:51:28.917 に答える
1
  1. DIA SDK は、デバッグではなくシンボル専用であり、DbgHelp.dll とはまったく無関係です。
  2. DbgEng.dll にはいくつかの COM API がありますが、これらのインターフェイスを取得するためにピンボークを行う必要があるインターフェイスのみです。必要なものを Managed C++ でラップするか、C++ を使用して COM を介して公開することをお勧めします。
于 2009-06-10T14:06:50.783 に答える