【问题标题】:How do I dump the .NET process so that Visual Studio 2008 will load it as a managed dump?如何转储 .NET 进程以便 Visual Studio 2008 将其作为托管转储加载?
【发布时间】:2009-09-21 18:00:17
【问题描述】:

我正在尝试创建托管进程的小型转储,它可以加载到 Visual Studio 2008 中。我正在使用以下代码创建小型转储:

...
MINIDUMP_TYPE dumpType =  static_cast< MINIDUMP_TYPE >(
  MiniDumpWithFullMemory |  MiniDumpWithDataSegs | MiniDumpWithHandleData |
  MiniDumpWithProcessThreadData | MiniDumpWithPrivateReadWriteMemory );
BOOL bSuccess = MiniDumpWriteDump(
  hProcess, dwProcessID, hFile, dumpType, NULL, NULL, NULL );
...

我尝试了很多 MINIDUMP_TYPE 的其他组合,但没有一个能达到我想要的效果:能够将转储文件加载到 Visual Studio 中,以便显示托管代码,就像“附加到进程”时那样”。转储文件正在加载,我可以将其用作本机代码。但是当我尝试将其作为托管代码(http://vvcap.net/db/gkqmlA9qbQIK47-patap.htp)进行调试时,我收到以下错误:“指定的文件是无法识别或不受支持的二进制格式”(http://vvcap.net/db/lw5cEvSMl3yiiHRkt87R.htp

【问题讨论】:

    标签: .net visual-studio debugging winapi


    【解决方案1】:

    托管转储调试不是 Visual Studio 2008 支持的功能。至少将其作为托管代码进行调试不是。对于这种类型的文件,您可以在有限的范围内使用 WinDbg。

    【讨论】:

    • 谢谢...让我再坚持一会儿,也许会有其他建议,否则我会接受你的回答
    猜你喜欢
    • 2015-12-13
    • 1970-01-01
    • 1970-01-01
    • 2011-01-02
    • 1970-01-01
    • 1970-01-01
    • 2013-10-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多