C# 调用方法的异常调用堆栈

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

我在一个垃圾堆里找到了下面的callstak。这是我第一次看到这样的东西,我不明白它的意思:

           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使堆栈失衡之外。