Reputation: 3509
I have my application crashing with following CallStack on the error (from WinDbg):
ntdll!ZwWaitForMultipleObjects+0xa
KERNELBASE!WaitForMultipleObjectsEx+0xe8
kernel32!WaitForMultipleObjectsExImplementation+0xb3
clr!WaitForMultipleObjectsEx_SO_TOLERANT+0x91
clr!Thread::DoAppropriateAptStateWait+0x56
clr!Thread::DoAppropriateWaitWorker+0x1b1
clr!Thread::DoAppropriateWait+0x73
clr!CLREvent::WaitEx+0xc1
clr!CLREventWaitWithTry+0x5c
clr! ?? ::FNODOBFM::`string'+0x6286a
clr!AssemblySecurityDescriptor::UpgradePEFileEvidenceToAssemblyEvidence+0x11d
clr!Assembly::ExecuteMainMethod+0xcb
clr!SystemDomain::ExecuteMainMethod+0x452
clr!ExecuteEXE+0x43
clr!CorExeMainInternal+0xc4
clr!CorExeMain+0x15
mscoreei!CorExeMain+0x41
mscoree!CorExeMain_Exported+0x57
kernel32!BaseThreadInitThunk+0xd
ntdll!RtlUserThreadStart+0x1d
This is a managed application, and according to WinDbg there are 61 processes / threads running from that application. In WinDbg, when typing !threads, it says there are no export threads found. It doesn't say what error caused this (in Visual Studio 2010, it says a NullReferenceException).
I am going nuts, I thought this was related to a USB Serial Controller, but I put that into another application, and it still crashes (although not with 100% as earlier, but rather with like 80%).
This exception / error completely eludes me, and I can't figure out how to fix it.
Update, using .loadby sos clr:
0:000> !threads
ThreadCount: 23
UnstartedThread: 0
BackgroundThread: 17
PendingThread: 0
DeadThread: 4
Hosted Runtime: no
PreEmptive Lock
ID OSID ThreadOBJ State GC GC Alloc Context Domain Count APT Exception
0 1 1678 00000000023dbfe0 201a228 Enabled 0000000000000000:0000000000000000 00000000004a5510 0 MTA
2 2 1b4 000000000243a230 b228 Enabled 0000000000000000:0000000000000000 00000000004a5510 0 MTA (Finalizer)
XXXX 4 0000000004039010 19820 Enabled 0000000000000000:0000000000000000 00000000004a5510 0 MTA
XXXX 5 0000000004099f50 19820 Enabled 0000000000000000:0000000000000000 00000000004a5510 0 Ukn
7 6 148c 00000000024bc5f0 228 Enabled 0000000000000000:0000000000000000 00000000004a5510 0 Ukn
9 7 19bc 00000000040e1420 b028 Enabled 0000000000000000:0000000000000000 00000000004a5510 0 MTA
4 8 1ba8 00000000040a4ff0 228 Enabled 0000000000000000:0000000000000000 00000000004a5510 0 Ukn
10 9 17f8 00000000040ab760 8b228 Enabled 0000000000000000:0000000000000000 00000000004a5510 0 MTA
11 a 10a0 00000000040b4890 87028 Enabled 000000000f411ff0:000000000f4120e0 00000000004a5510 0 STA System.ServiceModel.CommunicationObjectFaultedException (000000000f403608)
XXXX 3 00000000040b58a0 19820 Enabled 0000000000000000:0000000000000000 00000000004a5510 0 Ukn
XXXX b 0000000007e03220 19820 Enabled 0000000000000000:0000000000000000 00000000004a5510 0 Ukn
26 c b48 0000000007eee6b0 2000228 Enabled 000000000f417780:000000000f4180e0 00000000004a5510 0 Ukn System.NullReferenceException (000000000f35c0f8)
27 d 22c 0000000007e149c0 80228 Enabled 000000000f3d18f8:000000000f3d20e0 00000000004a5510 1 Ukn System.NullReferenceException (000000000f35a0f8)
40 16 116c 0000000027db3db0 80228 Enabled 000000000f419300:000000000f41a0e0 00000000004a5510 0 Ukn System.NullReferenceException (000000000f34c0f8)
38 17 18c8 0000000027db44c0 2000228 Enabled 000000000f4054d8:000000000f4060e0 00000000004a5510 0 Ukn System.NullReferenceException (000000000f34a0f8)
37 15 a78 0000000027db36a0 2000228 Enabled 000000000f40bac8:000000000f40c0e0 00000000004a5510 0 Ukn System.NullReferenceException (000000000f3540f8)
41 13 112c 0000000027db2880 2000228 Enabled 000000000f415c00:000000000f4160e0 00000000004a5510 0 Ukn System.NullReferenceException (000000000f34e0f8)
30 f 938 000000000415b590 80228 Enabled 000000000f4081f0:000000000f40a0e0 00000000004a5510 0 Ukn System.NullReferenceException (000000000f3520f8)
36 14 4f0 0000000027db2f90 80228 Enabled 000000000f412f70:000000000f4140e0 00000000004a5510 0 Ukn System.NullReferenceException (000000000f3500f8)
28 10 88c 0000000007ef2500 2000228 Enabled 000000000f3e9238:000000000f3ea0e0 00000000004a5510 0 Ukn System.NullReferenceException (000000000f35e0f8)
31 11 180c 0000000027aac5a0 80228 Enabled 000000000f41bb28:000000000f41c0e0 00000000004a5510 0 Ukn System.NullReferenceException (000000000f3580f8)
33 12 1b2c 0000000027db2170 2000228 Enabled 000000000f3bb238:000000000f3bc0e0 00000000004a5510 0 Ukn System.NullReferenceException (000000000f3560f8)
29 e 1968 0000000007eeca60 2000228 Enabled 000000000f3e2cc8:000000000f3e40e0 00000000004a5510 0 Ukn System.NullReferenceException (000000000f3600f8)
*** WARNING: Unable to verify checksum for System.ni.dll
*** WARNING: Unable to verify checksum for System.Transactions.ni.dll
The communication exception is being caught (this happens, when the WCF Host is not up, and may happen on disconnecting the hardware). I doubt that this is the cause for my crash since in Visual Studio it always crashes with a NullReferenceException, but no CallStack / Disassembly available.
When I look at for example thread OSID 22C (one with a NullReferenceException), the CallStack is
ntdll!ZwWaitForSingleObject+0xa
KERNELBASE!WaitForSingleObjectEx+0x79
clr!Thread::LeaveRuntimeNoThrow+0x7c
clr!Thread::LeaveRuntimeNoThrow+0xec
clr!CLREvent::WaitEx+0x5e
clr!Thread::WaitSuspendEventsHelper+0xcf
clr!Thread::WaitSuspendEvents+0x11
clr! ?? ::FNODOBFM::`string'+0x628f1
clr!Thread::RareDisablePreemptiveGC+0xfa
clr!GCHolderEEInterface<0,1,0>::~GCHolderEEInterface<0,1,0>+0x19
clr!Debugger::SendLogMessage+0xb7
clr!DebugDebugger::Log+0x223
System_ni+0x2b5f71
System_ni+0x243c3a
System_ni+0x714851
System_ni+0x70d7a7
System_Transactions_ni!_dyn_tls_init_callback <PERF> (System_Transactions_ni+0x738ec)
System_Transactions_ni!_dyn_tls_init_callback <PERF> (System_Transactions_ni+0x72b13)
clr!CallDescrWorker+0x84
clr!CallDescrWorkerWithHandler+0xa9
0:027> ~40
40 Id: 1278.116c Suspend: 0 Teb: 000007ff`ffbfa000 Unfrozen
Start: Loading symbols for 00000000`709b0000 msvcr100.dll -> msvcr100.dll
msvcr100!endthreadex+0x60 (00000000`709d1dbc)
Priority: 0 Priority class: 32 Affinity: f
0:027> !pe
Exception object: 000000000f35a0f8
Exception type: System.NullReferenceException
Message: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
InnerException: <none>
StackTrace (generated):
SP IP Function
000000002759FC60 0000000000000001 mscorlib_ni!System.StubHelpers.StubHelpers.CheckCollectedDelegateMDA(IntPtr)+0x2
StackTraceString: <none>
HResult: 80004003
Upvotes: 4
Views: 2647
Reputation: 2272
This stack trace looks innocent. Try enabling Win32 exceptions in WinDbg. I have seen managed applications crashing in their underlying Win32 calls, and WinDbg wouldn't show the source of the crash correctly because by default Win32 exceptions aren't handled.
Upvotes: 1
Reputation: 12654
The stack trace you've posted does not seem to be related to crash, as it is in a sleeping state, waiting for something.
You can take a look at windows event log, sometimes CLR places a meaningful message there when application crashes.
Also, if you are using .Net 4 or higher, it is much more convenient to analyze managed process dumps in visual studio, as you can easily navigate between threads and even build a composite thread diagram that will show only different parts in their call stacks.
Upvotes: 4