Debugging DIA SDK&;DbgEng

Debugging DIA SDK&;DbgEng,debugging,windbg,dia-sdk,Debugging,Windbg,Dia Sdk,DIA SDK和DbgEng(不是DbgHelp)是否同时基于COM和DbgHelp 如果是这样,我如何从C#应用程序调用DbgEng API。我可以使用idl文件(生成的tlib文件为TLIBMP)将DIA库导入C#项目,但DbgEng没有任何idl文件 我看到了一个不完整的包装 它使用托管C++手工包装API,但是忽略了许多函数。 我可以在C#中自动导入DbgEng.DLL而不编写任何托管包装器吗 其次,diasdk是否允许附加进程并研究内存(可能还包括计算表达式),比如DbgEng,还是只

DIA SDK和DbgEng(不是DbgHelp)是否同时基于COM和DbgHelp

如果是这样,我如何从C#应用程序调用DbgEng API。我可以使用idl文件(生成的tlib文件为TLIBMP)将DIA库导入C#项目,但DbgEng没有任何idl文件

我看到了一个不完整的包装 它使用托管C++手工包装API,但是忽略了许多函数。 我可以在C#中自动导入DbgEng.DLL而不编写任何托管包装器吗

其次,diasdk是否允许附加进程并研究内存(可能还包括计算表达式),比如DbgEng,还是只允许从pdb文件中获取符号?到目前为止,我得到的唯一示例是Dia2dump,它只解析pdb文件

  • DIA SDK仅用于未调试的符号,它与DbgHelp.dll无关
  • DLL有一些COM API,但只有接口,您仍然需要做一些调用来获得这些接口,在您的情况下,最好用托管C++来包装您需要的东西,或者使用C++将COM暴露给它。李>
    另一种方法是——dbghelp基于DIA。

    不正确,至少不直接(它们可能使用相同的代码库),但您可以在没有DIA的系统上使用dbghelp。如果dbghelp.dll不(动态)链接msdia80.dll,则,但是dbghelp要么静态链接到DIA,要么使用相同的代码库:只需比较x msdia80的输出*直径*和x dbghelp*迪亚,明白我的意思了。