我如何分析 C# prodump 崩溃转储文件,异常来自 CLR?
How do I analyse C# prodump crash dump file, an exception came from the CLR?
您好,我是检查故障转储文件的新手,我需要帮助或方法。
我可以看到异常来自 CLR 和 "clr exception - code e0434352(first chance)"
我已经附上转储文件驱动器可以在这里下载
https://drive.google.com/open?id=0BzWisplLq-PqLXppb1IzMV9VVGs
感谢任何帮助。
最基本的分析是!analyze -v
,这对您的情况已经有所帮助。首先确保您的 。所以以下3条命令足以找出异常:
0:000> .symfix
0:000> .reload
0:000> !analyze -v
[...]
CLR_EXCEPTION
Tid [0x0]
Frame [0x00]
String [System.ArgumentNullException]
Failure Bucketing
Data Bucketing
BUGCHECK_STR: CLR_EXCEPTION_System.ArgumentNullException
DEFAULT_BUCKET_ID: CLR_EXCEPTION_System.ArgumentNullException
[...]
对于 .NET,还有一个名为 sos 的扩展可以帮助:
0:000> .loadby sos clr
0:000> !pe
Exception object: 00000000045ff3b8
Exception type: System.ArgumentNullException
Message: Value cannot be null.
InnerException: <none>
StackTrace (generated):
SP IP Function
00000000003EDC20 000007FEDB83F49D System_Core_ni!System.Linq.Enumerable.SequenceEqual[[System.Byte, mscorlib]](System.Collections.Generic.IEnumerable`1<Byte>, System.Collections.Generic.IEnumerable`1<Byte>, System.Collections.Generic.IEqualityComparer`1<Byte>)+0x22d
StackTraceString: <none>
HResult: 80004003
您可能还需要调用堆栈:
0:000> !clrstack
The version of SOS does not match the version of CLR you are debugging. Please
load the matching version of SOS for the version of CLR you are debugging.
CLR Version: 4.0.30319.17929
SOS Version: 4.6.1590.0
OS Thread Id: 0x1b50 (0)
Child SP IP Call Site
00000000003edb38 0000000077c7bd7a [HelperMethodFrame: 00000000003edb38]
00000000003edc20 000007fedb83f49c System.Linq.Enumerable.SequenceEqual[[System.Byte, mscorlib]](System.Collections.Generic.IEnumerable`1, System.Collections.Generic.IEnumerable`1, System.Collections.Generic.IEqualityComparer`1)
00000000003edc90 000007fe8d6be73f ILS.MasterController+c__DisplayClass4f.b__4d()
00000000003edd40 000007fedf9c971c System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32)
00000000003edda0 000007fedf9c9587 MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate)
00000000003ede00 000007fedf9aa551 System.Windows.Threading.DispatcherOperation.InvokeImpl()
00000000003edec0 000007feeadaf8a5 System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
00000000003ee020 000007feeadaf609 System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
00000000003ee050 000007feeadaf5c7 System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
00000000003ee0a0 000007fedf9aa181 System.Windows.Threading.DispatcherOperation.Invoke()
00000000003ee120 000007fedf9c74b1 System.Windows.Threading.Dispatcher.ProcessQueue()
00000000003ee1e0 000007fedf9c7813 System.Windows.Threading.Dispatcher.WndProcHook(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)
00000000003ee2a0 000007fedf9c994a MS.Win32.HwndWrapper.WndProc(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)
00000000003ee350 000007fedf9c97d0 MS.Win32.HwndSubclass.DispatcherCallbackOperation(System.Object)
00000000003ee3a0 000007fedf9c95fe System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32)
00000000003ee400 000007fedf9c9587 MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate)
00000000003ee460 000007fedf9c692c System.Windows.Threading.Dispatcher.LegacyInvokeImpl(System.Windows.Threading.DispatcherPriority, System.TimeSpan, System.Delegate, System.Object, Int32)
00000000003ee500 000007fedf9c8e60 MS.Win32.HwndSubclass.SubclassWndProc(IntPtr, Int32, IntPtr, IntPtr)
00000000003ee600 000007fedfb6e6e7 DomainBoundILStubClass.IL_STUB_ReversePInvoke(Int64, Int32, Int64, Int64)
00000000003ee898 000007feec01482e [InlinedCallFrame: 00000000003ee898] MS.Win32.UnsafeNativeMethods.DispatchMessage(System.Windows.Interop.MSG ByRef)
00000000003ee898 000007fedf9d39e0 [InlinedCallFrame: 00000000003ee898] MS.Win32.UnsafeNativeMethods.DispatchMessage(System.Windows.Interop.MSG ByRef)
00000000003ee870 000007fedf9d39e0 DomainBoundILStubClass.IL_STUB_PInvoke(System.Windows.Interop.MSG ByRef)
00000000003ee940 000007fedf9c5eb2 System.Windows.Threading.Dispatcher.PushFrameImpl(System.Windows.Threading.DispatcherFrame)
00000000003ee9e0 000007fedc3172da System.Windows.Application.RunInternal(System.Windows.Window)
00000000003eea80 000007fedc316bd7 System.Windows.Application.Run()
00000000003eeac0 000007fe8c8d0107 ILS.App.Main()
00000000003eedf0 000007feebf6f713 [GCFrame: 00000000003eedf0]
您好,我是检查故障转储文件的新手,我需要帮助或方法。
我可以看到异常来自 CLR 和 "clr exception - code e0434352(first chance)"
我已经附上转储文件驱动器可以在这里下载
https://drive.google.com/open?id=0BzWisplLq-PqLXppb1IzMV9VVGs
感谢任何帮助。
最基本的分析是!analyze -v
,这对您的情况已经有所帮助。首先确保您的
0:000> .symfix
0:000> .reload
0:000> !analyze -v
[...]
CLR_EXCEPTION
Tid [0x0]
Frame [0x00]
String [System.ArgumentNullException]
Failure Bucketing
Data Bucketing
BUGCHECK_STR: CLR_EXCEPTION_System.ArgumentNullException
DEFAULT_BUCKET_ID: CLR_EXCEPTION_System.ArgumentNullException
[...]
对于 .NET,还有一个名为 sos 的扩展可以帮助:
0:000> .loadby sos clr
0:000> !pe
Exception object: 00000000045ff3b8
Exception type: System.ArgumentNullException
Message: Value cannot be null.
InnerException: <none>
StackTrace (generated):
SP IP Function
00000000003EDC20 000007FEDB83F49D System_Core_ni!System.Linq.Enumerable.SequenceEqual[[System.Byte, mscorlib]](System.Collections.Generic.IEnumerable`1<Byte>, System.Collections.Generic.IEnumerable`1<Byte>, System.Collections.Generic.IEqualityComparer`1<Byte>)+0x22d
StackTraceString: <none>
HResult: 80004003
您可能还需要调用堆栈:
0:000> !clrstack
The version of SOS does not match the version of CLR you are debugging. Please
load the matching version of SOS for the version of CLR you are debugging.
CLR Version: 4.0.30319.17929
SOS Version: 4.6.1590.0
OS Thread Id: 0x1b50 (0)
Child SP IP Call Site
00000000003edb38 0000000077c7bd7a [HelperMethodFrame: 00000000003edb38]
00000000003edc20 000007fedb83f49c System.Linq.Enumerable.SequenceEqual[[System.Byte, mscorlib]](System.Collections.Generic.IEnumerable`1, System.Collections.Generic.IEnumerable`1, System.Collections.Generic.IEqualityComparer`1)
00000000003edc90 000007fe8d6be73f ILS.MasterController+c__DisplayClass4f.b__4d()
00000000003edd40 000007fedf9c971c System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32)
00000000003edda0 000007fedf9c9587 MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate)
00000000003ede00 000007fedf9aa551 System.Windows.Threading.DispatcherOperation.InvokeImpl()
00000000003edec0 000007feeadaf8a5 System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
00000000003ee020 000007feeadaf609 System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
00000000003ee050 000007feeadaf5c7 System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
00000000003ee0a0 000007fedf9aa181 System.Windows.Threading.DispatcherOperation.Invoke()
00000000003ee120 000007fedf9c74b1 System.Windows.Threading.Dispatcher.ProcessQueue()
00000000003ee1e0 000007fedf9c7813 System.Windows.Threading.Dispatcher.WndProcHook(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)
00000000003ee2a0 000007fedf9c994a MS.Win32.HwndWrapper.WndProc(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)
00000000003ee350 000007fedf9c97d0 MS.Win32.HwndSubclass.DispatcherCallbackOperation(System.Object)
00000000003ee3a0 000007fedf9c95fe System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32)
00000000003ee400 000007fedf9c9587 MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate)
00000000003ee460 000007fedf9c692c System.Windows.Threading.Dispatcher.LegacyInvokeImpl(System.Windows.Threading.DispatcherPriority, System.TimeSpan, System.Delegate, System.Object, Int32)
00000000003ee500 000007fedf9c8e60 MS.Win32.HwndSubclass.SubclassWndProc(IntPtr, Int32, IntPtr, IntPtr)
00000000003ee600 000007fedfb6e6e7 DomainBoundILStubClass.IL_STUB_ReversePInvoke(Int64, Int32, Int64, Int64)
00000000003ee898 000007feec01482e [InlinedCallFrame: 00000000003ee898] MS.Win32.UnsafeNativeMethods.DispatchMessage(System.Windows.Interop.MSG ByRef)
00000000003ee898 000007fedf9d39e0 [InlinedCallFrame: 00000000003ee898] MS.Win32.UnsafeNativeMethods.DispatchMessage(System.Windows.Interop.MSG ByRef)
00000000003ee870 000007fedf9d39e0 DomainBoundILStubClass.IL_STUB_PInvoke(System.Windows.Interop.MSG ByRef)
00000000003ee940 000007fedf9c5eb2 System.Windows.Threading.Dispatcher.PushFrameImpl(System.Windows.Threading.DispatcherFrame)
00000000003ee9e0 000007fedc3172da System.Windows.Application.RunInternal(System.Windows.Window)
00000000003eea80 000007fedc316bd7 System.Windows.Application.Run()
00000000003eeac0 000007fe8c8d0107 ILS.App.Main()
00000000003eedf0 000007feebf6f713 [GCFrame: 00000000003eedf0]