locked
Using windbg to analyze a triagedump, how do I display a nested exception of type LE01?

    Question

  • I have a store app that has a crash reported, actually several.  I downloaded the triagedump file and opened it using windbg.  Using the technique described by Matt Small here -- http://blogs.msdn.com/b/wsdevsol/archive/2013/08/15/dump-diving-into-cert-failure_3a00_--how-to-get-a-good-callstack-from-triagedump.dmp.aspx -- I got a call stack that was not very informative. (Note: in addition to what Matt Small describes, I used the .sympath+ command to point to the program's pdb file.) 

    I then used the technique described here -- http://blogs.msdn.com/b/ntdebugging/archive/2014/01/13/debugging-a-windows-8-1-store-app-crash-dump.aspx -- to get the following stored exception information:

    0x07f2ac44
       +0x000 Header           : _STOWED_EXCEPTION_INFORMATION_HEADER
       +0x008 ResultCode       : 80131508
       +0x00c ExceptionForm    : 0y01
       +0x00c ThreadId         : 0y000000000000000000010001011111 (0x45f)
       +0x010 ExceptionAddress : 0x77cf42ad Void
       +0x014 StackTraceWordSize : 4
       +0x018 StackTraceWords  : 0x3a
       +0x01c StackTrace       : 0x0592f640 Void
       +0x010 ErrorText        : 0x77cf42ad  "붨鏷???"
       +0x020 NestedExceptionType : 0x314f454c
       +0x024 NestedException  : 0x07f58aec Void

    [1] @ 0833f06c 
    ---------------------------------------------
    0x08535760
       +0x000 Header           : _STOWED_EXCEPTION_INFORMATION_HEADER
       +0x008 ResultCode       : 80131508
       +0x00c ExceptionForm    : 0y01
       +0x00c ThreadId         : 0y000000000000000000000000000000 (0)
       +0x010 ExceptionAddress : (null) 
       +0x014 StackTraceWordSize : 4
       +0x018 StackTraceWords  : 0x35
       +0x01c StackTrace       : 0x08588ccc Void
       +0x010 ErrorText        : (null) 
       +0x020 NestedExceptionType : 0
       +0x024 NestedException  : (null) 

    The first stowed exception has a nested exception of type LE01 (STOWED_EXCEPTION_NESTED_TYPE('LEO1')) which I would like to be able to take a look at, but I do not know how.  Presumably I would use a dt command, but I would need to know the name of the language exception object that windbg would understand.

    Can anybody help me?

    Saturday, August 9, 2014 5:52 PM

All replies

  • There's a part 2 to the Debugging a Windows 8.1 Store App Crash Dump blog -
    http://blogs.msdn.com/b/ntdebugging/archive/2014/05/28/debugging-a-windows-8-1-store-app-crash-dump-part-2.aspx

    I hope this gets you to what you want.


    Matt Small - Microsoft Escalation Engineer - Forum Moderator
    If my reply answers your question, please mark this post as answered.

    NOTE: If I ask for code, please provide something that I can drop directly into a project and run (including XAML), or an actual application project. I'm trying to help a lot of people, so I don't have time to figure out weird snippets with undefined objects and unknown namespaces.

    Monday, August 11, 2014 12:25 PM
    Moderator
  • I think that answers my question, but I have a follow-up.  After making sure the bitness of the debugger and the target matched and getting to the point with the printout above, I did the following:

    0:004> !sos.dumpccw 0x07f58aec
    The call to LoadLibrary(sos) failed, Win32 error 0n2
        "The system cannot find the file specified."

    Please check your debugger configuration and/or network access.
    0:004> .cordll -ve -u -l
    CLRDLL: Unable to get version info for 'C:\ProgramData\dbg\sym\clr.dll\52E0B6716ae000\mscordacwks.dll', Win32 error 0n87

    --[A bunch of what I think is called spew]--

    CLRDLL: Unable to find mscordacwks_x86_arm_4.0.30319.34014.dll by mscorwks search
    CLRDLL: Unable to find 'mscordacwks_x86_arm_4.0.30319.34014.dll' on the path
    Cannot Automatically load SOS
    CLRDLL: ERROR: Unable to load DLL mscordacwks_x86_arm_4.0.30319.34014.dll, Win32 error 0n2
    CLR DLL status: ERROR: Unable to load DLL mscordacwks_x86_arm_4.0.30319.34014.dll, Win32 error 0n2

    Is this where I have to find a system with the same version of the CLR as the target installed?  If so, how do I find out what version of the CLR I need, and if I go to my local store to buy another machine, how do I tell what version of the CLR it has?

    Friday, August 15, 2014 11:08 AM
  • Try getting the SOS from an ARM device. I am not sure if it will load, though. I haven't tried this lately.

    Matt Small - Microsoft Escalation Engineer - Forum Moderator
    If my reply answers your question, please mark this post as answered.

    NOTE: If I ask for code, please provide something that I can drop directly into a project and run (including XAML), or an actual application project. I'm trying to help a lot of people, so I don't have time to figure out weird snippets with undefined objects and unknown namespaces.

    Monday, August 18, 2014 2:22 PM
    Moderator