如何分析C#prodump崩溃转储文件,CLR是一个例外?

时间:2017-01-06 06:35:53

标签: c# clr windbg dump procdump

嗨,我是检查崩溃转储文件的新手,我需要帮助或方法如何。  我可以看到该异常来自CLR和"clr exception - code e0434352(first chance)" 我已经附加了转储文件驱动器,可以在这里下载 https://drive.google.com/open?id=0BzWisplLq-PqLXppb1IzMV9VVGs

任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:3)

最基本的分析是!analyze -v,这对您的案例有帮助。首先确保您的symbols are correct。因此,以下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,还有一个名为的扩展程序可以提供帮助:

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]