Creating minidump instructions and WOW64

115 views
Skip to first unread message

Andrew Scherkus

unread,
Dec 3, 2012, 6:23:32 PM12/3/12
to Chromium-dev
While following the instructions to create a minidump to diagnose a hang [1], the resulting dump contained a bunch of WOW64 crud that I wasn't able to get past (the usual !wow64exts.sw / .effmach x86 didn't seem to work).

So either...
  1) My WinDbg-fu is weak and I'm doing it wrong (wouldn't surprise me, tips/tricks welcome)
  2) The instructions should be updated to use the 32-bit version of WinDbg (which is what I resorted to)
  3) The instructions should be updated to use procdump [2]
  4) ???

I'm liking (3) -- there's some cool stuff in there like the -h flag for creating a dump if the windows message loop hangs for more than 5 seconds (!) and it doesn't require going through the Windows SDK installer wizard thingy.

Any comments / ideas before I do (3)?

Andrew

Alex Pakhunov

unread,
Dec 3, 2012, 7:33:31 PM12/3/12
to Andrew Scherkus, Chromium-dev
Usual recommendation about #2 is that unless you need to see the ugly guts of Wow64 (64bit code, thunks, etc.) use the 32bit debugger. Otherwise, you have to work on your WinDbg-fu more. :-)

One (random) guess is that .dump stores either x86 or x64 stack only - depending on the current .effmach setting. Therefore you need to make sure that you switch to x86 before taking the dump. 


--
Chromium Developers mailing list: chromi...@chromium.org
View archives, change email options, or unsubscribe:
http://groups.google.com/a/chromium.org/group/chromium-dev



--
Alex.

Ryan Sleevi

unread,
Dec 3, 2012, 7:36:38 PM12/3/12
to alex...@google.com, Andrew Scherkus, Chromium-dev, Eric Roman
Looks like Process Explorer is generating 64-bit dumps of 32-bit
processes, which is Not Desired.

Switching the directions to (3) seems like the right approach, if and
until Process Explorer is updated/changed.

Eric Roman

unread,
Dec 3, 2012, 8:22:48 PM12/3/12
to rsl...@chromium.org, alex...@google.com, Andrew Scherkus, Chromium-dev
You can get the 32-bit callstacks out of the 64 bit dumps with this:

> .effmach x86
> .load wow64exts
> ~*k =@ebp @ebp @ebp

This particular "k" command is an ugly hack, but hey, "it works" :)
I am not sure why WinDBG doesn't support this more directly with their wow64 extensions, sure would have been nice...

Changing the instructions for generating dumps seems fine, I am not opposed to generating 32-bit dumps instead.
The downside of course is if the hang actually is in 64-bit code, then you now won't be able to diagnose it from the dump.

Note that I also have an internal G+ post that talks about about wrangling the 32-bit parts out of a 64 bit dump.

Cheers.
Reply all
Reply to author
Forward
0 new messages