Search code examples
windowsdebugginggoogle-chromewindbgcrash-dumps

How to analyze exception after Chrome Aw Snap using windbg


I keep having "Aw Snap" in my web application. Using windbg and with the help of How do I debug a tab crash in Google Chrome I tried to figure out the problem.

Step I've done so far:

  1. Got a .dmp file from Crashes directory
  2. Loaded it into windbg
  3. Managed to see the stack (using "k")
  4. When trying !analyze does not show anything meaningful

What do I need to see the module that cause the crash How to progress from here?

EDIT: There was a typo. "!analyze -v" does the work which is similar to: kb, dd, .exr, .cxr, kv For all Chrome AwSnappers - !analyze -v is what you are looking for

Info below...

0:000> !analyze

*******************************************************************************
*                                                                             *
*                        Exception Analysis                                   *
*                                                                             *
*******************************************************************************

Use !analyze -v to get detailed debugging information.

GetPageUrlData failed, server returned HTTP status 404
URL requested: http://watson.microsoft.com/StageOne/chrome_exe/27_0_1446_3/5148bbf0/unknown/0_0_0_0/bbbbbbb4/c0000005/24430fba.htm?Retriage=1
Probably caused by : chrome.dll ( chrome!v8::internal::Invoke+14a )

Followup: MachineOwner
---------

0:000> analyze -v
*** WARNING: Unable to verify timestamp for pdf.dll
*** ERROR: Module load completed but symbols could not be loaded for pdf.dll
*** WARNING: Unable to verify timestamp for icudt.dll
*** ERROR: Module load completed but symbols could not be loaded for icudt.dll
*** WARNING: Unable to verify timestamp for ppGoogleNaClPluginChrome.dll

The stack shows this:

0:000> k
ChildEBP RetAddr  
0039e438 76ea15e9 ntdll!ZwWaitForMultipleObjects+0x15
0039e4d4 75dc1a2c KERNELBASE!WaitForMultipleObjectsEx+0x100
0039e51c 75dc4220 kernel32!WaitForMultipleObjectsExImplementation+0xe0
0039e538 012d0572 kernel32!WaitForMultipleObjects+0x18
0039e55c 012d0688 chrome!google_breakpad::CrashGenerationClient::SignalCrashEventAndWait+0x45 [c:\b\build\slave\win\build\src\breakpad\src\client\windows\crash_generation\crash_generation_client.cc @ 369]
0039e56c 012cfb89 chrome!google_breakpad::CrashGenerationClient::RequestDump+0x4f [c:\b\build\slave\win\build\src\breakpad\src\client\windows\crash_generation\crash_generation_client.cc @ 333]
0039e588 012cff6a chrome!google_breakpad::ExceptionHandler::WriteMinidumpWithException+0x30 [c:\b\build\slave\win\build\src\breakpad\src\client\windows\handler\exception_handler.cc @ 817]
0039e5ac 75e0003f chrome!google_breakpad::ExceptionHandler::HandleException+0x46 [c:\b\build\slave\win\build\src\breakpad\src\client\windows\handler\exception_handler.cc @ 476]
0039e634 779774df kernel32!UnhandledExceptionFilter+0x127
0039e63c 779773bc ntdll!__RtlUserThreadStart+0x62
0039e650 77977261 ntdll!_EH4_CallFilterFunc+0x12
0039e678 7795b459 ntdll!_except_handler4+0x8e
0039e69c 7795b42b ntdll!ExecuteHandler2+0x26
0039e6c0 7795b3ce ntdll!ExecuteHandler+0x24
0039e74c 77910133 ntdll!RtlDispatchException+0x127
0039e74c 00000000 ntdll!KiUserExceptionDispatcher+0xf

Solution

  • 0039e634 779774df kernel32!UnhandledExceptionFilter+0x127
    

    The UnhandledExceptionFilter function is called when no exception handler is defined to handle the exception that is raised.

    HOW TO: Find the Problem Exception Stack When You Receive an UnhandledExceptionFilter Call in the Stack Trace