What does GCFrame mean in output of !clrstack command in WinDBG?
Asked Answered
C

1

12

Can somebody help me with answering my 2 questions below?

  1. What does GCFrame mean in !clrStack output?
  2. What does System.IndexOutOfRangeException..ctor() showing in the stack mean? Does it mean there is actually exception on thread?
0:023> !clrstack
OS Thread Id: 0xe1c (23)
Child SP         IP               Call Site
0000000005cab978 000007fef909caf6 [HelperMethodFrame_PROTECTOBJ: 0000000005cab978] System.Reflection.RuntimeAssembly._nLoad(System.Reflection.AssemblyName, System.String, System.Security.Policy.Evidence, System.Reflection.RuntimeAssembly, System.Threading.StackCrawlMark ByRef, Boolean, Boolean, Boolean)
0000000005cabb50 000007fef80316ce System.Reflection.RuntimeAssembly.InternalGetSatelliteAssembly(System.String, System.Globalization.CultureInfo, System.Version, Boolean, System.Threading.StackCrawlMark ByRef)
0000000005cabbc0 000007fef8031357 System.Resources.ManifestBasedResourceGroveler.GetSatelliteAssembly(System.Globalization.CultureInfo, System.Threading.StackCrawlMark ByRef)
0000000005cabc50 000007fef8038972 System.Resources.ManifestBasedResourceGroveler.GrovelForResourceSet(System.Globalization.CultureInfo, System.Collections.Generic.Dictionary`2<System.String,System.Resources.ResourceSet>, Boolean, Boolean, System.Threading.StackCrawlMark ByRef)
0000000005cabd10 000007fef8038678 System.Resources.ResourceManager.InternalGetResourceSet(System.Globalization.CultureInfo, Boolean, Boolean, System.Threading.StackCrawlMark ByRef)
0000000005cabdd0 000007fef8038403 System.Resources.ResourceManager.InternalGetResourceSet(System.Globalization.CultureInfo, Boolean, Boolean)
0000000005cabe20 000007fef8037fcc System.Resources.ResourceManager.GetString(System.String, System.Globalization.CultureInfo)
0000000005cabec0 000007fef803e10b System.Environment+ResourceHelper.GetResourceStringCode(System.Object)
0000000005cac608 000007fef903ee74 [HelperMethodFrame_PROTECTOBJ: 0000000005cac608] System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode, CleanupCode, System.Object)
0000000005cac730 000007fef803dd88 System.Environment+ResourceHelper.GetResourceString(System.String, System.Globalization.CultureInfo)
0000000005cac780 000007fef803e5b8 System.Environment.GetResourceStringLocal(System.String)
0000000005cacb98 000007fef903ee74 [ContextTransitionFrame: 0000000005cacb98] 
0000000005cacb58 000007fef903ee74 [GCFrame: 0000000005cacb58] 
0000000005cacdb8 000007fef903ee74 [HelperMethodFrame_2OBJ: 0000000005cacdb8] System.Environment.GetResourceFromDefault(System.String)
0000000005cacee0 000007fef870fc58 System.IndexOutOfRangeException..ctor()
0000000005cad2c8 000007fef903ee74 [GCFrame: 0000000005cad2c8] 
0000000005cad468 000007fef903ee74 [GCFrame: 0000000005cad468] 
0000000005cad5c0 000007fef903ee74 [GCFrame: 0000000005cad5c0] 
0000000005cad978 000007fef903ee74 [HelperMethodFrame: 0000000005cad978] System.Buffer.InternalBlockCopy(System.Array, Int32, System.Array, Int32, Int32)
0000000005cadab0 000007fef807c705 System.IO.StreamWriter.Write(Char[], Int32, Int32)
0000000005cadb10 000007fef807ba5c System.IO.TextWriter.WriteLine(System.String)
0000000005cadb70 000007fef807c9ff System.IO.TextWriter+SyncTextWriter.WriteLine(System.String)
0000000005cadbc0 000007ff0021a74e log4net.Util.LogLog.EmitOutLine(System.String)
0000000005cadc10 000007ff00223fdf log4net.Appender.FileAppender.OpenFile(System.String, Boolean)
0000000005cadc90 000007ff00223b31 log4net.Appender.RollingFileAppender.OpenFile(System.String, Boolean)
0000000005cadd10 000007ff00223837 log4net.Appender.FileAppender.SafeOpenFile(System.String, Boolean)
0000000005cadd70 000007ff005daec3 log4net.Appender.TextWriterAppender.PreAppendCheck()
0000000005caddb0 000007ff005dabc1 log4net.Appender.AppenderSkeleton.DoAppend(log4net.Core.LoggingEvent)
0000000005cade10 000007ff005da910 log4net.Util.AppenderAttachedImpl.AppendLoopOnAppenders(log4net.Core.LoggingEvent)
0000000005cade90 000007ff005da511 log4net.Repository.Hierarchy.Logger.CallAppenders(log4net.Core.LoggingEvent)
0000000005cadf10 000007ff005da12b log4net.Repository.Hierarchy.Logger.Log(System.Type, log4net.Core.Level, System.Object, System.Exception)
0000000005cadf80 000007ff005de0f2 log4net.Core.LogImpl.DebugFormat(System.String, System.Object[])
0000000005cadff0 000007ff005ddfb0 Secure.Utility.LogHelper.DebugFormat(System.String, System.Object[])
0000000005cae060 000007ff005ded4d Secure.Portal.Messaging.GenericProcessor.OnMessageReceive(WaveSecure.Messaging.GatewayProvider, System.String, System.String, System.String, System.String, WaveSecure.EventInitiatorTypeList, System.Web.HttpContext)
0000000005cae360 000007ff005dbc3e Secure.Portal.Handlers.XmlServiceMessageHandler.ProcessRequest(System.Web.HttpContext)
0000000005cae420 000007fef0f1f831 System.Web.HttpApplication+CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
0000000005cae500 000007fef0eec26e System.Web.HttpApplication.ExecuteStep(IExecutionStep, Boolean ByRef)
0000000005cae5d0 000007fef168cff5 System.Web.HttpApplication+PipelineStepManager.ResumeSteps(System.Exception)
0000000005cae690 000007fef15b0bf5 System.Web.HttpApplication.BeginProcessRequestNotification(System.Web.HttpContext, System.AsyncCallback)
0000000005cae6e0 000007fef1592576 System.Web.HttpRuntime.ProcessRequestNotificationPrivate(System.Web.Hosting.IIS7WorkerRequest, System.Web.HttpContext)
0000000005cae780 000007fef167df1f System.Web.Hosting.PipelineRuntime.ProcessRequestNotificationHelper(IntPtr, IntPtr, IntPtr, Int32)
0000000005cae920 000007fef167e3f2 System.Web.Hosting.PipelineRuntime.ProcessRequestNotification(IntPtr, IntPtr, IntPtr, Int32)
0000000005cae970 000007fef167d141 DomainNeutralILStubClass.IL_STUB_ReversePInvoke(Int64, Int64, Int64, Int32)
0000000005caf228 000007fef90e62e7 [NDirectMethodFrameStandalone: 0000000005caf228] System.Web.Hosting.UnsafeIISMethods.MgdIndicateCompletion(IntPtr, System.Web.RequestNotificationStatus ByRef)
0000000005caf1f0 000007fef162ff47 DomainNeutralILStubClass.IL_STUB_PInvoke(IntPtr, System.Web.RequestNotificationStatus ByRef)
0000000005caf2c0 000007fef167e054 System.Web.Hosting.PipelineRuntime.ProcessRequestNotificationHelper(IntPtr, IntPtr, IntPtr, Int32)
0000000005caf460 000007fef167e3f2 System.Web.Hosting.PipelineRuntime.ProcessRequestNotification(IntPtr, IntPtr, IntPtr, Int32)
0000000005caf4b0 000007fef167d141 DomainNeutralILStubClass.IL_STUB_ReversePInvoke(Int64, Int64, Int64, Int32)
0000000005caf718 000007fef90e654b [ContextTransitionFrame: 0000000005caf718] 
Crazyweed answered 15/7, 2013 at 18:34 Comment(0)
A
0

The exception is in the process of being constructed -- its constructor is currently running. It is probably being thrown by the BlockCopy method (you can inspect it in Reflector to see under which conditions it throws this exception). In the process of running the constructor, a satellite resource assembly is being loaded to get a string (which is probably the human-readable exception message).

Ailsun answered 20/8, 2013 at 20:54 Comment(2)
Any idea what the GCFrame is?Fusil
github.com/dotnet/coreclr/blob/release/2.2/src/vm/… github.com/dotnet/coreclr/blob/master/Documentation/botr/… This frame doesn't represent a method call. it's sole purpose is to let the EE gc-protect object references that it is manipulating.Nephew

© 2022 - 2024 — McMap. All rights reserved.