C# 调用方法的异常调用堆栈
我在一个垃圾堆里找到了下面的callstak。这是我第一次看到这样的东西,我不明白它的意思:C# 调用方法的异常调用堆栈,c#,.net,stack-trace,jit,dump,C#,.net,Stack Trace,Jit,Dump,我在一个垃圾堆里找到了下面的callstak。这是我第一次看到这样的东西,我不明白它的意思: ntdll.dll!_RtlCallVectoredExceptionHandlers@8() + 0xa bytes ntdll.dll!_RtlDispatchException@8() + 0x19 bytes ntdll.dll!_KiUserExceptionDispatcher@8() + 0xf
ntdll.dll!_RtlCallVectoredExceptionHandlers@8() + 0xa bytes
ntdll.dll!_RtlDispatchException@8() + 0x19 bytes
ntdll.dll!_KiUserExceptionDispatcher@8() + 0xf bytes
ntdll.dll!_RtlUnwind@16() + 0x352e8 bytes
MSVCR110_CLR0400.dll!_UnwindNestedFrames() + 0x2a bytes
MSVCR110_CLR0400.dll!___DestructExceptionObject() - 0x534 bytes
MSVCR110_CLR0400.dll!___DestructExceptionObject() + 0x69046 bytes
MSVCR110_CLR0400.dll!___DestructExceptionObject() - 0x25ee bytes
MSVCR110_CLR0400.dll!___InternalCxxFrameHandler() + 0x1d8 bytes
MSVCR110_CLR0400.dll!___CxxFrameHandler3() + 0x26 bytes
ntdll.dll!ExecuteHandler2@20() + 0x26 bytes
ntdll.dll!ExecuteHandler@20() + 0x24 bytes
ntdll.dll!_RtlDispatchException@8() + 0xd3 bytes
ntdll.dll!_KiUserExceptionDispatcher@8() + 0xf bytes
clrjit.dll!Compiler::genCodeForTreeSmpOpAsg() + 0x9 bytes
….
….
….
clrjit.dll!Compiler::genCodeForTree() + 0xb4ca bytes
clrjit.dll!Compiler::genComputeReg() + 0x3e bytes
clrjit.dll!Compiler::genCodeForTreeSmpOpAsg() + 0xb8 bytes
clrjit.dll!Compiler::genCodeForTreeSmpOp() + 0x5b bytes
clrjit.dll!Compiler::genCodeForTree() + 0xbd bytes
clrjit.dll!Compiler::genPushArgList() + 0xd6ab bytes
clrjit.dll!Compiler::genCodeForCall() + 0x89bb bytes
clrjit.dll!Compiler::genCodeForTreeSpecialOp() + 0x50 bytes
clrjit.dll!Compiler::genCodeForTree() + 0xb4ca bytes
clrjit.dll!Compiler::genComputeReg() + 0x3e bytes
clrjit.dll!Compiler::genCodeForTreeSmpOpAsg() + 0xb8 bytes
clrjit.dll!Compiler::genCodeForTreeSmpOp() + 0x5b bytes
clrjit.dll!Compiler::genCodeForTree() + 0xbd bytes
clrjit.dll!Compiler::genPushArgList() + 0xd6ab bytes
clrjit.dll!Compiler::genCodeForCall() + 0x89bb bytes
clrjit.dll!Compiler::genCodeForTreeSpecialOp() + 0x50 bytes
clrjit.dll!Compiler::genCodeForTree() + 0xb4ca bytes
clrjit.dll!Compiler::genComputeReg() + 0x3e bytes
clrjit.dll!Compiler::genCodeForTreeSmpOpAsg() + 0xb8 bytes
clrjit.dll!Compiler::genCodeForTreeSmpOp() + 0x5b bytes
clrjit.dll!Compiler::genCodeForTree() + 0xbd bytes
clrjit.dll!Compiler::genPushArgList() + 0xd6ab bytes
clrjit.dll!Compiler::genCodeForCall() + 0x89bb bytes
clrjit.dll!Compiler::genCodeForTreeSpecialOp() + 0x50 bytes
clrjit.dll!Compiler::genCodeForTree() + 0xb4ca bytes
clrjit.dll!Compiler::genComputeReg() + 0x3e bytes
clrjit.dll!Compiler::genCodeForTreeSmpOpAsg() + 0xb8 bytes
clrjit.dll!Compiler::genCodeForTreeSmpOp() + 0x5b bytes
clrjit.dll!Compiler::genCodeForTree() + 0xbd bytes
clrjit.dll!Compiler::genPushArgList() + 0xd6ab bytes
clrjit.dll!Compiler::genCodeForCall() + 0x89bb bytes
clrjit.dll!Compiler::genCodeForTreeSpecialOp() + 0x50 bytes
clrjit.dll!Compiler::genCodeForTree() + 0xb4ca bytes
clrjit.dll!Compiler::genCodeForTreeSmpOpAsg() - 0xf7 bytes
clrjit.dll!Compiler::genCodeForTreeSmpOp() + 0x5b bytes
clrjit.dll!Compiler::genCodeForTree() + 0xbd bytes
clrjit.dll!Compiler::genPushArgList() + 0xd6ab bytes
clrjit.dll!Compiler::genCodeForCall() + 0x89bb bytes
clrjit.dll!Compiler::genCodeForTreeSpecialOp() + 0x50 bytes
clrjit.dll!Compiler::genCodeForTree() + 0xb4ca bytes
clrjit.dll!Compiler::genEvalSideEffects() + 0x5a bytes
clrjit.dll!Compiler::genCodeForTreeSmpOp() + 0x14d89 bytes
clrjit.dll!Compiler::genCodeForTree() + 0xbd bytes
clrjit.dll!Compiler::genCodeForBBlist() - 0x1be3 bytes
clrjit.dll!Compiler::genGenerateCode() + 0x73 bytes
clrjit.dll!Compiler::compCompile() + 0x68e6 bytes
clrjit.dll!Compiler::compCompileHelper() + 0x1f0 bytes
clrjit.dll!Compiler::compCompile() + 0x104 bytes
clrjit.dll!jitNativeCode() - 0x11eb bytes
clrjit.dll!CILJit::compileMethod() + 0x25 bytes
[Managed to Native Transition]
**A call to one of our managed methods()**
有人知道这意味着什么吗?这可能是clrjit中的错误吗
编辑:
很抱歉,引发的异常是以下异常:
状态\u保护\u页面\u冲突(0x8000001)异常
关于应用程序,它是一个运行在.NET4中的托管Word加载项。引发异常的方法并没有做任何您希望以异常结束的事情。它只是调用UnityContainer.RegisterType(),但看起来异常是在到达该方法之前引发的。异常的类型是什么?它说“调用我们的一个方法()。您能显示该方法的代码吗?该代码只调用UnityContainer.RegisterType()方法,但由于这没有出现在stacktrace中,我猜问题是在到达该行之前(这是唯一的一行)。您可以看到jitter忙着抖动一个方法。如果没有对所提出的异常进行描述,那只是盲目猜测可能出了什么问题。这个网站的名字并不罕见。我猜对了,堆栈空间不足。状态\保护\页面\违规是最终引发StackOverflowException的原因。您正在从小型垃圾场获取机器视图的灵魂。极不寻常的是,获得堆栈溢出通常需要递归代码,这使得抖动不太可能必须jit任何代码。很难想出一个理论来适应这种行为,除了stackalloc或坏pinvoke使堆栈失衡之外。