Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Debugging dump of 32-bit process captured on 64-bit machine

I recently received a 64-bit crash dump from a customer.
Our processes are all 32-bit, but the customer's machine is running x64 Server 2008.

Visual Studio (both 2008 and 2010 Express) is telling me that I have to use the 64-bit version of MSVSMON.EXE, which I can't because I don't have a 64-bit machine.

I'm pretty sure there's a way to do this in WinDbg, but I find WinDbg to be hostile.

Is there any way to debug a 64-bit dump on a 32-bit machine, preferably using Visual Studio?

like image 692
mskfisher Avatar asked Oct 22 '10 19:10

mskfisher


People also ask

What is memory dump in debugging?

A dump is basically the contents of Memory written out to a file. The contents of this can vary depending on how the dump was generated. A Kernel Dump is a dump of Windows itself, including all applications running on the system.

How do you take a memory dump and find failures?

In Control Panel, select System and Security > System. Select Advanced system settings, and then select the Advanced tab. In the Startup and Recovery area, select Settings. Make sure that Kernel memory dump or Complete memory dump is selected under Writing Debugging Information.


2 Answers

You need to make sure that customer uses 32 bit tools (adplus or DebugDiag) to capture crash dumps for your 32 bit processes. Then you can use your 32 bit machine to debug the dumps.

Link

Though Isalamon's comment is technically correct, nobody would like to execute that as the stack trace is horrible.

Let your customer know that this is necessary, and hope that he/she cooperates.

If you are not familiar with dump analysis, Microsoft is always there for you, http://support.microsoft.com

like image 129
Lex Li Avatar answered Sep 18 '22 13:09

Lex Li


I worked around the problem by using 32 bit task manager (C:\Windows\SysWOW64\Taskmgr.exe) to capture the dump.

like image 27
Shane Lu Avatar answered Sep 21 '22 13:09

Shane Lu