Note that there are some explanatory texts on larger screens.

plurals
  1. PODebugging an AccessViolation in .NET app on a WinCE device using WinDbg
    text
    copied!<p>I'm debugging a crash on a client's .NET 2.0 WinCE (6.0) application. I've pulled the .kdmp from the device and opened in in WinDbg, but to be honest I don't know quite what I'm looking for. I can see that it is an Access Violation taking down the app, but that's all I can tell. Any tips on using WinDbg for .NET Compact Framework is appreciated. I don't have experience with the tool. </p> <p>Here is the output from <code>!analyze -v</code> </p> <pre><code>******************************************************************************* * * * Win CE Exception Analysis * * * ******************************************************************************* Debugging Details: ------------------ GetContextState failed, 0x80070570 Unable to get program counter GetContextState failed, 0x80070570 Unable to get program counter GetContextState failed, 0x80070570 Unable to get program counter GetContextState failed, 0x80070570 Unable to get program counter GetContextState failed, 0x80070570 Unable to get program counter GetContextState failed, 0x80070570 Unable to get program counter GetContextState failed, 0x80070570 Unable to get program counter GetContextState failed, 0x80070570 Unable to get program counter GetContextState failed, 0x80070570 Unable to get program counter TRIAGER: Could not open triage file : C:\Program Files\Windows Kits\8.0\Debuggers\x86\triage\guids.ini, error 2 SYMSRV: C:\Program Files\Windows Kits\8.0\Debuggers\x86\sym\ole32.dll\4D7757B97a000\ole32.dll not found SYMSRV: C:\Program Files\Windows Kits\8.0\Debuggers\x86\sym\ole32.dll\4D7757B97a000\ole32.dll not found SYMSRV: http://msdl.microsoft.com/download/symbols/ole32.dll/4D7757B97a000/ole32.dll not found DBGHELP: C:\Program Files\Windows Kits\8.0\Debuggers\ole32.dll - file not found DBGHELP: C:\Program Files\Windows Kits\8.0\Debuggers\ole32.dll - file not found SYMSRV: http://msdl.microsoft.com/download/symbols/ole32.dll/4D7757B97a000/ole32.dll not found SYMSRV: C:\Program Files\Windows Kits\8.0\Debuggers\x86\sym\ole32.dll\4D7757B97a000\ole32.dll not found DBGHELP: C:\Program Files\Windows Kits\8.0\Debuggers\ole32.dll - file not found DBGHELP: C:\Program Files\Windows Kits\8.0\Debuggers\ole32.dll - file not found DBGHELP: C:\Program Files\Windows Kits\8.0\Debuggers\ole32.dll - file not found DBGHELP: C:\Program Files\Windows Kits\8.0\Debuggers\ole32.dll - file not found DBGHELP: ole32.dll not found in c:\documents and settings\thomas carvin\desktop\scanner\bin\debug DBGHELP: ole32.dll not found in c:\documents and settings\thomas carvin\desktop\scanner\bin\debug DBGENG: ole32.dll - Image mapping disallowed by non-local path. Unable to load image ole32.dll, Win32 error 0n2 DBGENG: ole32.dll - Partial symbol image load missing image info DBGHELP: No header for ole32.dll. Searching for dbg file DBGHELP: c:\documents and settings\thomas carvin\desktop\scanner\bin\debug\ole32.dbg - file not found DBGHELP: c:\documents and settings\thomas carvin\desktop\scanner\bin\debug\dll\ole32.dbg - path not found DBGHELP: c:\documents and settings\thomas carvin\desktop\scanner\bin\debug\symbols\dll\ole32.dbg - path not found DBGHELP: .\ole32.dbg - file not found DBGHELP: .\dll\ole32.dbg - path not found DBGHELP: .\symbols\dll\ole32.dbg - path not found DBGHELP: ole32.dll missing debug info. Searching for pdb anyway DBGHELP: c:\documents and settings\thomas carvin\desktop\scanner\bin\debug\ole32.pdb - file not found DBGHELP: c:\documents and settings\thomas carvin\desktop\scanner\bin\debug\dll\ole32.pdb - file not found DBGHELP: c:\documents and settings\thomas carvin\desktop\scanner\bin\debug\symbols\dll\ole32.pdb - file not found DBGHELP: ole32.pdb - file not found *** WARNING: Unable to verify timestamp for ole32.dll *** ERROR: Module load completed but symbols could not be loaded for ole32.dll DBGHELP: ole32 - no symbols loaded GetContextState failed, 0x80070570 Unable to get program counter GetContextState failed, 0x80070570 GetContextState failed, 0x80070570 Unable to get current machine context, Win32 error 0n1392 GetContextState failed, 0x80070570 Unable to get program counter GetContextState failed, 0x80070570 GetContextState failed, 0x80070570 Unable to get current machine context, Win32 error 0n1392 GetContextState failed, 0x80070570 Unable to get program counter GetContextState failed, 0x80070570 GetContextState failed, 0x80070570 Unable to get current machine context, Win32 error 0n1392 GetContextState failed, 0x80070570 Unable to get program counter GetContextState failed, 0x80070570 GetContextState failed, 0x80070570 Unable to get current machine context, Win32 error 0n1392 GetContextState failed, 0x80070570 Unable to get program counter GetContextState failed, 0x80070570 GetContextState failed, 0x80070570 Unable to get current machine context, Win32 error 0n1392 GetContextState failed, 0x80070570 Unable to get program counter GetContextState failed, 0x80070570 GetContextState failed, 0x80070570 Unable to get current machine context, Win32 error 0n1392 GetContextState failed, 0x80070570 Unable to get program counter GetContextState failed, 0x80070570 GetContextState failed, 0x80070570 Unable to get current machine context, Win32 error 0n1392 GetContextState failed, 0x80070570 Unable to get program counter GetContextState failed, 0x80070570 GetContextState failed, 0x80070570 Unable to get current machine context, Win32 error 0n1392 GetContextState failed, 0x80070570 Unable to get program counter GetContextState failed, 0x80070570 GetContextState failed, 0x80070570 Unable to get current machine context, Win32 error 0n1392 TRIAGER: Could not open triage file : C:\Program Files\Windows Kits\8.0\Debuggers\x86\triage\modclass.ini, error 2 FAULTING_IP: +0 80428ca8 e5913010 ldr r3,[r1,#0x10] EXCEPTION_RECORD: ffffffff -- (.exr 0xffffffffffffffff) ExceptionAddress: 80428ca8 ExceptionCode: c0000005 (Access violation) ExceptionFlags: 00000000 NumberParameters: 2 Parameter[0]: 00000000 Parameter[1]: 00000010 Attempt to read from address 00000010 FAULTING_THREAD: 0cf2001a ERROR_CODE: (NTSTATUS) 0xc0000005 - The instruction at "0x%08lx" referenced memory at "0x%08lx". The memory could not be "%s". EXCEPTION_CODE: (NTSTATUS) 0xc0000005 - The instruction at "0x%08lx" referenced memory at "0x%08lx". The memory could not be "%s". EXCEPTION_PARAMETER1: 00000000 EXCEPTION_PARAMETER2: 00000010 READ_ADDRESS: 00000010 FOLLOWUP_IP: +0 80428ca8 e5913010 ldr r3,[r1,#0x10] CE_DEVLOG: &lt;ANALYSIS&gt; &lt;CELG_NAME&gt;OEM&lt;/CELG_NAME&gt; &lt;CELG_VALUE&gt;MOTOROLA MC3100R&lt;/CELG_VALUE&gt; &lt;/ANALYSIS&gt; CE_DEVLOG: &lt;ANALYSIS&gt; &lt;CELG_NAME&gt;Build&lt;/CELG_NAME&gt; &lt;CELG_VALUE&gt;0&lt;/CELG_VALUE&gt; &lt;/ANALYSIS&gt; CE_DEVLOG: &lt;ANALYSIS&gt; &lt;CELG_NAME&gt;RAM&lt;/CELG_NAME&gt; &lt;CELG_VALUE&gt;135143424&lt;/CELG_VALUE&gt; &lt;/ANALYSIS&gt; CE_DEVLOG: &lt;ANALYSIS&gt; &lt;CELG_NAME&gt;FreeRAM&lt;/CELG_NAME&gt; &lt;CELG_VALUE&gt;107048960&lt;/CELG_VALUE&gt; &lt;/ANALYSIS&gt; CE_DEVLOG: &lt;ANALYSIS&gt; &lt;CELG_NAME&gt;Store&lt;/CELG_NAME&gt; &lt;CELG_VALUE&gt;83693568&lt;/CELG_VALUE&gt; &lt;/ANALYSIS&gt; CE_DEVLOG: &lt;ANALYSIS&gt; &lt;CELG_NAME&gt;FreeStore&lt;/CELG_NAME&gt; &lt;CELG_VALUE&gt;54960128&lt;/CELG_VALUE&gt; &lt;/ANALYSIS&gt; APP: scanner.exe IP_ON_HEAP: 8042c0e0 ADDITIONAL_DEBUG_TEXT: Followup set based on attribute [Is_ChosenCrashFollowupThread] from Frame:[0] on thread:[PSEUDO_THREAD] LAST_CONTROL_TRANSFER: from 8042c0e0 to 80428ca8 DEFAULT_BUCKET_ID: STACKIMMUNE PRIMARY_PROBLEM_CLASS: STACKIMMUNE BUGCHECK_STR: APPLICATION_FAULT_STACKIMMUNE_NULL_CLASS_PTR_READ_ZEROED_STACK FRAME_ONE_INVALID: 1 STACK_TEXT: 00000000 00000000 scanner.exe!Unknown+0x0 SYMBOL_STACK_INDEX: 0 SYMBOL_NAME: scanner.exe!Unknown FOLLOWUP_NAME: MachineOwner MODULE_NAME: scanner IMAGE_NAME: scanner.exe DEBUG_FLR_IMAGE_TIMESTAMP: 0 STACK_COMMAND: ** Pseudo Context ** ; kb FAILURE_BUCKET_ID: STACKIMMUNE_c0000005_scanner.exe!Unloaded BUCKET_ID: ARM_APPLICATION_FAULT_STACKIMMUNE_NULL_CLASS_PTR_READ_ZEROED_STACK_scanner.exe!Unknown Followup: MachineOwner </code></pre> <p>Here is unassembled instructions and loaded modules</p> <pre><code>1:000:armce&gt; u 80428ca8 80428ca8 e5913010 ldr r3,[r1,#0x10] 80428cac e3530001 cmp r3,#1 80428cb0 0a000005 beq 80428ccc 80428cb4 e3530002 cmp r3,#2 80428cb8 1a00000c bne 80428cf0 80428cbc e1a03004 mov r3,r4 80428cc0 e2802010 add r2,r0,#0x10 80428cc4 eb000830 bl 8042ad8c 1:000:armce&gt; lm start end module name 00010000 00074000 scanner (deferred) 40010000 400a6000 coredll (deferred) 400b0000 400c2000 fpcrt (deferred) 40120000 4012d000 zlib (deferred) 40140000 401a5000 commctrl (deferred) 40290000 402a0000 iphlpapi (deferred) 402b0000 402bd000 ws2 (deferred) 402c0000 402c6000 wspm (deferred) 402d0000 402d6000 nspm (deferred) 402f0000 402fb000 ssllsp (deferred) 40380000 403ba000 netui (deferred) 40400000 40405000 lpcrt (deferred) 404b0000 404b7000 secur32 (deferred) 405f0000 4066a000 ole32 (deferred) 40670000 406a5000 oleaut32 (deferred) 406d0000 40722000 rpcrt4 (deferred) 40730000 4078b000 imaging (deferred) 419b0000 419c2000 mscoree (deferred) 41e30000 41e5b000 rsaenh (deferred) 41f30000 41f37000 rcm2api32 (deferred) 41f40000 41f53000 edbgtl (deferred) 41f70000 41f7f000 tcpconnectiona (deferred) 41f80000 41fbd000 netcfagl2_0 (deferred) 41fc0000 41fd0000 sqlceme30 (deferred) 42010000 420db000 mscoree2_0 (deferred) 42160000 42184000 sqlceer30en (deferred) 80400000 80420000 NK (deferred) </code></pre> <p>And info from CE Watson Dump Viewer</p> <p><img src="https://i.stack.imgur.com/hFuJF.png" alt="enter iDump Info"></p> <p><img src="https://i.stack.imgur.com/HdJs3.png" alt="Processes"></p> <p><img src="https://i.stack.imgur.com/QGbq0.png" alt="Modules"></p> <p><img src="https://i.stack.imgur.com/xdmeA.png" alt="Callstack"></p> <p><img src="https://i.stack.imgur.com/7i9lP.png" alt="Memory Block"></p> <p><img src="https://i.stack.imgur.com/4jaFW.png" alt="Threads"></p> <p>At this point I'm mostly looking for a direction. If someone could say this problem is due to the app, due to a dependent library, or due to the device/OS, it would be a great starting point.</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload