2009-06-10 6 views
0

DIA SDK & DbgEng(DbgHelpではありません)COMベースのAPIとDbgHelpをベースにしていますか?DIA SDK&DbgEngに必要なヘルプ

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

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

DIA SDKは、DbgEngのように、プロセスを接続してメモリを調査したり(場合によっては式を評価する)ことができますか、単にpdbファイルからシンボルを取得するだけですか?これまでのところ私が得たのは、pdbファイルのみを解析するDia2dumpです。

答えて

1
DIA SDKは、シンボルのみのために、それはいくつかのCOM APIを持っていますが、あなたはまだに-やるそれらのインターフェイスを取得するには、いくつかのpinvokingを必要とするだけintrfaces、その優れたDbgEng.dll DbgHelp.dll
  • とは無関係の全体でのデバッグされていない
    1. あなたが必要とするものをManaged C++で包むか、C++を使ってCOMを通してそれを公開することができます。
  • 0

    これとは逆に、dbghelpはDIAをベースにしています。

    +0

    DDE SDKなしのシステムでDbgHelpを使用することはできますが、直接使用することはできません –

    +0

    dbghelp.dllは(動的に)msdia80.dllとリンクしていませんがdbghelpはDIAと静的にリンクするか、同じコードベースを使用します:x msdia80!* Dia *とx dbghelp!* Dia *の出力を比較して、どういう意味かを見てください。 –