如何从System.AccessViolationException获取堆栈跟踪?

时间:2015-11-06 10:53:43

标签: c++-cli stack-trace unmanaged access-violation managed

我有一个应用程序的崩溃转储(minidump),其中包括托管代码和非托管代码。在执行Delegate.DynamicInvoke期间,应用程序因异常System.Reflection.TargetInvocationException而崩溃。内部异常是System.AccessViolationException,但它不包含堆栈跟踪信息(见下文)。

是否有可能以某种方式获得此堆栈跟踪?

Windbg输出!analyze -v(我缩短了堆栈跟踪以使其更清晰):

EXCEPTION_OBJECT:!pe 6c09b28

异常对象:0000000006c09b28

异常类型:System.Reflection.TargetInvocationException

消息:调用目标抛出了异常。

InnerException:System.AccessViolationException,Use!PrintException 0000000006c09988查看更多内容。

StackTrace(生成):

SP               IP               Function
00000000004FB540 0000000000000000 mscorlib_ni!System.RuntimeMethodHandle.InvokeMethod(System.Object, System.Object[], System.Signature, Boolean)+0x1
00000000004FB540 000007FEF761D28C mscorlib_ni!System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(System.Object, System.Object[], System.Object[])+0x4c
00000000004FB5B0 000007FEF754FD3A mscorlib_ni!System.Delegate.DynamicInvokeImpl(System.Object[])+0x6a
00000000004FB610 000007FE99A15010 CCTV_Framework_Utility!CCTV.Framework.Utility.EventsHelper.SafeInvoke(System.Delegate, System.Object[])+0x60

StackTraceString: HResult:80131604

EXCEPTION_OBJECT:!pe 6c09988

异常对象:0000000006c09988

异常类型:System.AccessViolationException

消息:尝试读取或写入受保护的内存。这通常表明其他内存已损坏。

InnerException:none

StackTrace(生成):无

StackTraceString:none

HResult:80004003

0 个答案:

没有答案