调试在64位计算机上捕获的32位进程的转储

msk*_*her 15 debugging 64-bit windbg crash-dumps visual-studio-2010

我最近收到了一个客户的64位崩溃转储.
我们的流程都是32位,但客户的机器正在运行x64 Server 2008.

Visual Studio(2008和2010 Express)告诉我,我必须使用64位版本MSVSMON.EXE,我不能,因为我没有64位机器.

我很确定在WinDbg中有一种方法可以做到这一点,但我发现WinDbg是敌对的.

有没有办法在32位机器上调试64位转储,最好是使用Visual Studio?

Lex*_* Li 12

您需要确保客户使用32位工具(adplus或DebugDiag)来捕获32位进程的故障转储.然后,您可以使用32位计算机来调试转储.

http://blogs.msdn.com/b/tess/archive/2010/09/29/capturing-memory-dumps-for-32-bit-processes-on-an-x64-machine.aspx

虽然Isalamon的评论在技术上是正确的,但没有人愿意执行它,因为堆栈跟踪很糟糕.

让您的客户知道这是必要的,并希望他/她合作.

如果您不熟悉转储分析,Microsoft将随时为您服务,http://support.microsoft.com

  • 我使用了ProcDump,如链接博客文章中所述.就像魅力一样,即使在VS2010中使用托管代码也是如此. (2认同)

Sha*_* Lu 7

我通过使用 32 位任务管理器(C:\Windows\SysWOW64\Taskmgr.exe)来捕获转储来解决这个问题。