Reputation: 11681
I am attempting to read a dump file in VS2010 with the hopes of getting a stack trace of where the crash happened in my release build.However when i opened the dump file in VS2010 it states
You cannot debug a 64-bit dump of a 32-bit process , you must collect a 32 bit dump of a 32 process
Now my application is 32 bit and it was running on a 64 bit system. So does this mean that I cannot read dump files now since its running on a 64 bit system ?? Any suggestions ? The dump files was generated using a 64 bit Task manager on Windows 7. If i run a 32 bit task manager and generate a dump from that in windows 7 will that resolve the issue ?
Upvotes: 1
Views: 1903
Reputation: 69734
You can still open this dump using WinDbg from Debugging Tools for Windows package.
To produce good dumps for Win32 application in x64 systems you need to create the dump using Win32 version of MiniDumpWriteDump
API. Regular Task Manager started from appbar content menu or Ctrl+Shift+Esc hotkey (as well as Process Explorer) is of the OS bitness and the produced dumps are not helpful. 32-bit dumps can be taken by Visual Studio itself, attaching to the process, pausing it and saving minidump from menu, or using 32-bit task manager started directly: C:\Windows\SYSWOW64\taskmgr.exe
.
I am using LogProcessExceptions utility (I am sure there are many other as well) to generate minidumps on exceptions and on interactive request. Since the utility is available in both Win32 and x64 bitnesses, 32-bit version of the tool will give you the dumps you need.
Upvotes: 5
Reputation: 7479
Yes, using the 32-bit task manager to create a dump of a 32-bit process is the way to go.
Using the 64-bit task manager on a 32-bit process creates a wow64 crash dump which isn't really very useful.
Here is a relevant MSDN blog: http://blogs.msdn.com/b/amb/archive/2012/05/28/10163879.aspx
Upvotes: 1