如何转储.NET进程以便Visual Studio 2008将其作为托管转储加载?

时间:2009-09-21 18:00:17

标签: .net visual-studio debugging winapi

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

...
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

1 个答案:

答案 0 :(得分:1)

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