2009-06-10 93 views
0

DIA SDK & DbgEng(不是DbgHelp)都是基於COM的API和基於DbgHelp的嗎?DIA SDK和DbgEng所需的幫助

如果是這樣,我怎樣才能從C#應用程序調用DbgEng API。我可以使用idl文件(tlibimp生成tlib文件)將DIA庫導入C#項目,但DbgEng沒有任何IDL文件。

我已經看到了使用Managed C++手動封裝API的DbgEng 的一個不完整封裝,但是遺漏了許多功能。 我可以在C#中自動導入DbgEng.DLL而無需編寫任何託管包裝?其次,DIA SDK是否允許連接一個進程並對內存進行調查(並可能評估一個表達式),就像DbgEng一樣,或者只是從pdb文件中獲取符號?到目前爲止,我得到的例子是Dia2dump,它只分析pdb文件。

回答

1
  1. DIA SDK僅用於符號調試的不是它整體無關DbgHelp.dll
  2. DbgEng.dll有一些COM API,但只有intrfaces你仍然需要到做一些pinvoking得到這些接口,它能夠更好在你的情況下,用Managed C++包裝你所需的東西,或者使用C++通過COM公開它。
0

這是相反的 - dbghelp基於DIA。

+0

不是真的,至少不是直接的(它們可能使用相同的代碼庫),但是您可以在沒有DIA SDK的系統上使用DbgHelp – 2009-06-10 17:00:44