在VS2010 64/32位冲突中读取转储文件

Raj*_*war 1 c++ crash-dumps visual-studio-2010

我试图在VS2010中读取一个转储文件,希望在我的发布版本中获得发生崩溃的堆栈跟踪.但是当我在VS2010中打开转储文件时,它说明了

您无法调试32位进程的64位转储,您必须收集32进程的32位转储

现在我的应用程序是32位,它运行在64位系统上.那么这是否意味着我现在无法读取转储文件,因为它在64位系统上运行?有什么建议 ?转储文件是使用Windows 7上的64位任务管理器生成的.如果我运行32位任务管理器并从Windows 7中生成转储将解决问题?

Rom*_* R. 5

您仍然可以使用Debugging Tools for Windows软件包中的WinDbg打开此转储.

要在x64系统中为Win32应用程序生成良好的转储,您需要使用Win32版本的MiniDumpWriteDumpAPI 创建转储.常规任务管理器从appbar内容菜单启动或Ctrl + Shift + Esc热键(以及Process Explorer)具有操作系统位数,并且生成的转储无效.Visual Studio本身可以进行32位转储,附加到进程,暂停它并从菜单中保存minidump,或者直接使用32位任务管理器启动:C:\Windows\SYSWOW64\taskmgr.exe.

我正在使用LogProcessExceptions实用程序(我相信还有很多其他实用程序)可以在异常和交互式请求上生成小型转储.由于该实用程序可用于Win32和x64 位,因此该工具的32位版本将为您提供所需的转储.