我有一个 .Net 4.0 WPF 应用程序,它有时似乎挂起(每天 1-2 次)。该应用程序与监视用户活动有关,因此使用了许多本机调用(例如 EnumWindows、GetForegroundWindow、GetLastInputInfo 等)。该应用程序还使用 SQL Server CE 4.0 数据库来存储一些信息。
我已经设法从这些挂起的 4 到 5 个中获得崩溃转储,它们看起来都非常相似,但我仍在努力找出问题的原因。
我在下面包含了对最新故障转储的 DebugDiag 分析结果。在此之前大约 20 秒的故障转储显示了完全相同的结果。由此看来,有 2 个线程导致其他线程等待它们。
17 - 该线程正在向 CE 数据库中插入一些数据。我看不出这个线程会挂起的任何原因。
22 - 我不知道这个线程在堆栈跟踪中做了什么。
该应用程序在多个地方大量使用 System.Threading.Tasks 来启动任务以处理各种事件,因此可能会有相当多的线程。从一些阅读来看,Thread 22 似乎是 LoaderLock 问题,但我通过 DllImport 使用标准 Windows API 调用,并且没有任何自定义 c++ 代码(这似乎通常会导致此问题)。
任何建议或指示将不胜感激,因为此刻我有点卡住了!
我无法发布完整的 DebugDiag 结果,因为它太大了,但这里是最重要的部分:
**Analysis Summary:**
***Warning***
Detected possible blocking or leaked critical section at ntdll!LdrpLoaderLock owned by thread 22
Impact of this lock
43.59% of threads blocked
(Threads 0 9 17 18 24 25 28 29 30 31 32 33 34 35 36 37 38)
The following functions are trying to enter this critical section
ntdll!LdrGetDllHandleEx+200
ntdll!LdrGetDllHandleByName+38
ntdll!LdrLockLoaderLock+6d
ntdll!LdrGetProcedureAddressEx+42d
ntdll!LdrShutdownThread+72
ntdll!LdrUnloadDll+2b
ntdll!LdrpInitializeThread+8d
The following module(s) are involved with this critical section
C:\Windows\System32\ntdll.dll from Microsoft Corporation
***Warning***
The following threads in are waiting to enter a .NET Lock which thread 17 is currently holding
( 7 8 10 11 13 14 15 16 19 )
23.08% of threads blocked
**Analysis Details:**
***Locked critical section report***
Critical Section ntdll!LdrpLoaderLock
Lock State Locked
Lock Count 17
Recursion Count 1
Entry Count 0
Contention Count 161
Spin Count 0
Owner Thread 22
Owner Thread System ID 14788
***Threads which appear to be causing hangs***
***Thread 22 - System ID 14788***
Entry point ntdll!RtlUserThreadStart+1d
Create time 08/01/2013 12:45:08
Time spent in user mode 0 Days 00:00:00.00
Time spent in kernel mode 0 Days 00:00:00.00
This thread is not fully resolved and may or may not be a problem. Further analysis of these threads may be required.
Function Source
ntdll!NtWaitForSingleObject+a
KERNELBASE!WaitForSingleObjectEx+79
ShellExtension!CoreWaitForThreadEx+106
ShellExtension!_COS_CLIENT_OPERATION_CONTROLLER::COSRemoveAutoResumeTrOps+378
ShellExtension!_COS_CLIENT_OPERATION_CONTROLLER::~_COS_CLIENT_OPERATION_CONTROLLER+45
ShellExtension!DllInstall+11a5e
ShellExtension!DllInstall+69f4
ShellExtension!DllInstall+6b4e
ntdll!LdrpUnloadDll+27d
ntdll!LdrUnloadDll+4a
KERNELBASE!FreeLibrary+1d
ole32!CClassCache::CDllPathEntry::CFinishObject::Finish+28 d:\w7rtm\com\ole32\com\objact\dllcache.cxx @ 3394
ole32!CClassCache::CFinishComposite::Finish+46 d:\w7rtm\com\ole32\com\objact\dllcache.cxx @ 3504
ole32!CClassCache::FreeUnused+db d:\w7rtm\com\ole32\com\objact\dllcache.cxx @ 5430
ole32!CoFreeUnusedLibrariesEx+3b d:\w7rtm\com\ole32\com\objact\dllapi.cxx @ 175
user32!UserCallWinProc+19f
user32!DispatchMessageWorker+143
ole32!CDllHost::STAWorkerLoop+68 d:\w7rtm\com\ole32\com\objact\dllhost.cxx @ 957
ole32!CDllHost::WorkerThread+d7 d:\w7rtm\com\ole32\com\objact\dllhost.cxx @ 834
ole32!CRpcThread::WorkerLoop+1e d:\w7rtm\com\ole32\com\dcomrem\threads.cxx @ 257
ole32!CRpcThreadCache::RpcWorkerThreadEntry+1a d:\w7rtm\com\ole32\com\dcomrem\threads.cxx @ 63
kernel32!BaseThreadInitThunk+d
ntdll!RtlUserThreadStart+1d
***Thread 17 - System ID 14164***
Entry point ntdll!RtlUserThreadStart+1d
Create time 08/01/2013 12:32:00
Time spent in user mode 0 Days 00:00:00.936
Time spent in kernel mode 0 Days 00:00:03.338
This thread is not fully resolved and may or may not be a problem. Further analysis of these threads may be required.
.NET Call Stack
Function
DomainBoundILStubClass.IL_STUB_PInvoke()
System.Data.SqlServerCe.SqlCeConnection..ctor()
System.Data.SqlServerCe.SqlCeProviderFactory.CreateConnection()
System.Data.Linq.SqlClient.SqlProvider.System.Data.Linq.Provider.IProvider.Initialize(System.Data.Linq.Provider.IDataServices, System.Object)
System.Data.Linq.DataContext.Init(System.Object, System.Data.Linq.Mapping.MappingSource)
Company.MyApplication.Application.Bootstrapper+<>c__DisplayClass7.b__5(Microsoft.Practices.Unity.IUnityContainer)
Microsoft.Practices.Unity.InjectionFactory+<>c__DisplayClass2.<.ctor>b__0(Microsoft.Practices.Unity.IUnityContainer, System.Type, System.String)
Microsoft.Practices.ObjectBuilder2.FactoryDelegateBuildPlanPolicy.BuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext)
Microsoft.Practices.ObjectBuilder2.BuildPlanStrategy.PreBuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext)
Microsoft.Practices.ObjectBuilder2.StrategyChain.ExecuteBuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext)
Microsoft.Practices.Unity.UnityContainer.DoBuildUp(System.Type, System.Object, System.String, System.Collections.Generic.IEnumerable`1)
Microsoft.Practices.Unity.UnityContainer.DoBuildUp(System.Type, System.String, System.Collections.Generic.IEnumerable`1)
Microsoft.Practices.ServiceLocation.ServiceLocatorImplBase.GetInstance(System.Type, System.String)
Microsoft.Practices.ServiceLocation.ServiceLocatorImplBase.GetInstance[[System.__Canon, mscorlib]]()
Company.MyApplication.Application.Services.Timers.PersistedTimerService.AddIdlePeriod(System.DateTime, System.DateTime)
System.EventHandler`1[[System.__Canon, mscorlib]].Invoke(System.Object, System.__Canon)
Company.MyApplication.Application.IdleDetection.SystemIdleDetector.CheckSystemState(Int32, Boolean, System.DateTime)
Company.MyApplication.Application.IdleDetection.SystemIdleDetector+<>c__DisplayClass3.b__1(System.Object, System.Timers.ElapsedEventArgs)
System.Timers.Timer.MyTimerCallback(System.Object)
System.Threading.ExecutionContext.runTryCode(System.Object)
System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode, CleanupCode, System.Object)
System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
System.Threading._TimerCallback.PerformTimerCallback(System.Object)
Full Call Stack
Function Source
ntdll!NtWaitForSingleObject+a
ntdll!RtlpWaitOnCriticalSection+e8
ntdll!RtlEnterCriticalSection+d1
ntdll!LdrLockLoaderLock+6d
KERNELBASE!GetModuleFileNameW+96
sqlceme40!LoadResourceDll+1d3
sqlceme40!InitResourceDll+2b
sqlceme40!DllAddRef+1f
clr!DoNDirectCall__PatchGetThreadCall+7b
0x000007ff`001e81fa
0x000007ff`001e4b6d
0x000007ff`0048326c
System_Data_Linq_ni+1fca99
System_Data_Linq_ni+1653d1
0x000007ff`00481a08
0x000007ff`001c4a7f
0x000007ff`001c4937
0x000007ff`001b8650
0x000007ff`001b7c31
0x000007ff`001b7428
0x000007ff`001b7244
0x000007ff`001d74e6
0x000007ff`001d745b
0x000007ff`004933d9
0x000007ff`0004bea9
0x000007ff`0048c620
0x000007ff`00493068
System_ni+260561
mscorlib_ni+382f68
clr!CallDescrWorker+84
clr!CallDescrWorkerWithHandler+a9
clr!MethodDesc::CallDescr+2a1
clr!ExecuteCodeWithGuaranteedCleanupHelper+152
clr!ReflectionInvocation::ExecuteCodeWithGuaranteedCleanup+1a5
mscorlib_ni+371651
mscorlib_ni+3ecda7
clr!CallDescrWorker+84
clr!CallDescrWorkerWithHandler+a9
clr!DispatchCallDebuggerWrapper+74
clr!DispatchCallNoEH+7c
clr!AddTimerCallback_Worker+85
clr!VirtualCallStubManager::GenerateResolveCacheElem+aa
clr!FullSegmentIterator+194
clr!DomainFile::Activate+375
clr!COMArrayInfo::GetReference+12b
clr!AddTimerCallbackEx+77
clr!ThreadpoolMgr::AsyncTimerCallbackCompletion+49
clr!UnManagedPerAppDomainTPCount::DispatchWorkItem+181
clr!ThreadpoolMgr::NewWorkerThreadStart+2e5
clr!ThreadpoolMgr::WorkerThreadStart+3b
clr!Thread::intermediateThreadProc+7d
kernel32!BaseThreadInitThunk+d
ntdll!RtlUserThreadStart+1d
***Examples of threads waiting on thread 22***
***Thread 0 - System ID 12068***
Entry point ntdll!RtlUserThreadStart+1d
Create time 08/01/2013 12:30:17
Time spent in user mode 0 Days 00:00:08.190
Time spent in kernel mode 0 Days 00:00:03.026
This thread is not fully resolved and may or may not be a problem. Further analysis of these threads may be required.
.NET Call Stack
Function
System.Windows.Forms.UnsafeNativeMethods.GetModuleHandle(System.String)
DomainBoundILStubClass.IL_STUB_PInvoke(System.String)
System.Windows.Forms.Application.get_ComCtlSupportsVisualStyles()
System.Windows.Forms.ProfessionalColorTable.get_ColorTable()
System.Windows.Forms.ProfessionalColorTable.FromKnownColor(KnownColors)
System.Windows.Forms.ToolStripProfessionalRenderer.RenderToolStripDropDownBackground(System.Windows.Forms.ToolStripRenderEventArgs)
System.Windows.Forms.ToolStripProfessionalRenderer.OnRenderToolStripBackground(System.Windows.Forms.ToolStripRenderEventArgs)
System.Windows.Forms.ToolStrip.OnPaintBackground(System.Windows.Forms.PaintEventArgs)
System.Windows.Forms.ToolStripDropDownMenu.OnPaintBackground(System.Windows.Forms.PaintEventArgs)
System.Windows.Forms.Control.PaintWithErrorHandling(System.Windows.Forms.PaintEventArgs, Int16)
System.Windows.Forms.Control.WmPaint(System.Windows.Forms.Message ByRef)
System.Windows.Forms.Control.WndProc(System.Windows.Forms.Message ByRef)
System.Windows.Forms.ToolStrip.WndProc(System.Windows.Forms.Message ByRef)
System.Windows.Forms.ToolStripDropDown.WndProc(System.Windows.Forms.Message ByRef)
System.Windows.Forms.NativeWindow.Callback(IntPtr, Int32, IntPtr, IntPtr)
DomainBoundILStubClass.IL_STUB_ReversePInvoke(Int64, Int32, Int64, Int64)
MS.Win32.UnsafeNativeMethods.DispatchMessage(System.Windows.Interop.MSG ByRef)
DomainBoundILStubClass.IL_STUB_PInvoke(System.Windows.Interop.MSG ByRef)
System.Windows.Threading.Dispatcher.PushFrameImpl(System.Windows.Threading.DispatcherFrame)
System.Windows.Application.RunInternal(System.Windows.Window)
Company.MyApplication.Application.Program.Main()
Full Call Stack
Function Source
ntdll!NtWaitForSingleObject+a
ntdll!RtlpWaitOnCriticalSection+e8
ntdll!RtlEnterCriticalSection+d1
ntdll!LdrGetDllHandleEx+200
ntdll!LdrGetDllHandle+1c
KERNELBASE!GetModuleHandleForUnicodeString+26
KERNELBASE!BasepGetModuleHandleExW+d6
KERNELBASE!GetModuleHandleW+1e
clr!DoNDirectCall__PatchGetThreadCall+7b
System_Windows_Forms_ni+35b406
System_Windows_Forms_ni+34d9a6
System_Windows_Forms_ni+3215f9
System_Windows_Forms_ni+321378
System_Windows_Forms_ni+c80860
System_Windows_Forms_ni+ef939b
System_Windows_Forms_ni+31fb6f
System_Windows_Forms_ni+a42080
System_Windows_Forms_ni+347df2
System_Windows_Forms_ni+34c96f
System_Windows_Forms_ni+331339
System_Windows_Forms_ni+31e9dc
System_Windows_Forms_ni+2c9495
System_Windows_Forms_ni+330cfc
System_Windows_Forms_ni+bc1d50
clr!UMThunkStubAMD64+77
user32!UserCallWinProcCheckWow+163
user32!DispatchClientMessage+c3
user32!_fnDWORD+2d
ntdll!KiUserCallbackDispatcherContinue
user32!NtUserDispatchMessage+a
user32!DispatchMessageWorker+55b
clr!DoNDirectCall__PatchGetThreadCall+7b
WindowsBase_ni!?MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen@@20051M1M120N1M08120N <PERF> (WindowsBase_ni+0x1403f0)
WindowsBase_ni!?MS.Internal.IO.Zip.ProgressiveCrcCalculatingStream..ctor@@200301128L80126509+1a
PresentationFramework_ni+3886df
0x000007ff`001b03fa
clr!CallDescrWorker+84
clr!CallDescrWorkerWithHandler+a9
clr!MethodDesc::CallDescr+2a1
clr!ClassLoader::RunMain+228
clr!Assembly::ExecuteMainMethod+ac
clr!SystemDomain::ExecuteMainMethod+452
clr!ExecuteEXE+43
clr!CorExeMainInternal+c4
clr!CorExeMain+15
mscoreei!CorExeMain+41
mscoree!CorExeMain_Exported+57
kernel32!BaseThreadInitThunk+d
ntdll!RtlUserThreadStart+1d
***Thread 38 - System ID 15180***
Entry point ntdll!LdrInitializeThunk+e
Create time 08/01/2013 13:53:47
Time spent in user mode 0 Days 00:00:00.00
Time spent in kernel mode 0 Days 00:00:00.00
This thread is waiting on critical section ntdll!LdrpLoaderLock which is owned by thread 22
Function Source
ntdll!NtWaitForSingleObject+a
ntdll!RtlpWaitOnCriticalSection+e8
ntdll!RtlEnterCriticalSection+d1
ntdll!LdrpInitializeThread+8d
ntdll!LdrpInitialize+9f
ntdll!LdrInitializeThunk+e
***Examples of threads waiting on thread 17***
***Thread 10 - System ID 11748***
Entry point ntdll!RtlUserThreadStart+1d
Create time 08/01/2013 12:30:24
Time spent in user mode 0 Days 00:00:00.951
Time spent in kernel mode 0 Days 00:00:05.818
This thread is waiting to enter a .NET Lock which thread 17 is currently holding
.NET Call Stack
Function
System.Threading.Monitor.Enter(System.Object)
Company.MyApplication.Application.Services.Timers.PersistedTimerService.AddIdlePeriod(System.DateTime, System.DateTime)
System.EventHandler`1[[System.__Canon, mscorlib]].Invoke(System.Object, System.__Canon)
Company.MyApplication.Application.IdleDetection.SystemIdleDetector.CheckSystemState(Int32, Boolean, System.DateTime)
Company.MyApplication.Application.IdleDetection.SystemIdleDetector+<>c__DisplayClass3.b__1(System.Object, System.Timers.ElapsedEventArgs)
System.Timers.Timer.MyTimerCallback(System.Object)
System.Threading.ExecutionContext.runTryCode(System.Object)
System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode, CleanupCode, System.Object)
System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
System.Threading._TimerCallback.PerformTimerCallback(System.Object)
Full Call Stack
Function Source
ntdll!NtWaitForMultipleObjects+a
KERNELBASE!WaitForMultipleObjectsEx+e8
kernel32!WaitForMultipleObjectsExImplementation+b3
clr!WaitForMultipleObjectsEx_SO_TOLERANT+91
clr!Thread::DoAppropriateAptStateWait+56
clr!Thread::DoAppropriateWaitWorker+1b1
clr!Thread::DoAppropriateWait+73
clr!CLREvent::WaitEx+c1
clr!AwareLock::EnterEpilogHelper+ca
clr!AwareLock::EnterEpilog+63
clr!AwareLock::Contention+219
clr!JITutil_MonContention+104
0x000007ff`004932f8
0x000007ff`0004bea9
0x000007ff`0048c620
0x000007ff`00493068
System_ni+260561
mscorlib_ni+382f68
clr!CallDescrWorker+84
clr!CallDescrWorkerWithHandler+a9
clr!MethodDesc::CallDescr+2a1
clr!ExecuteCodeWithGuaranteedCleanupHelper+152
clr!ReflectionInvocation::ExecuteCodeWithGuaranteedCleanup+1a5
mscorlib_ni+371651
mscorlib_ni+3ecda7
clr!CallDescrWorker+84
clr!CallDescrWorkerWithHandler+a9
clr!DispatchCallDebuggerWrapper+74
clr!DispatchCallNoEH+7c
clr!AddTimerCallback_Worker+85
clr!VirtualCallStubManager::GenerateResolveCacheElem+aa
clr!FullSegmentIterator+194
clr!DomainFile::Activate+375
clr!COMArrayInfo::GetReference+12b
clr!AddTimerCallbackEx+77
clr!ThreadpoolMgr::AsyncTimerCallbackCompletion+49
clr!UnManagedPerAppDomainTPCount::DispatchWorkItem+181
clr!ThreadpoolMgr::NewWorkerThreadStart+2e5
clr!ThreadpoolMgr::WorkerThreadStart+3b
clr!Thread::intermediateThreadProc+7d
kernel32!BaseThreadInitThunk+d
ntdll!RtlUserThreadStart+1d
Thread 15 - System ID 8644
Entry point ntdll!RtlUserThreadStart+1d
Create time 08/01/2013 12:31:54
Time spent in user mode 0 Days 00:00:00.686
Time spent in kernel mode 0 Days 00:00:03.338
This thread is waiting to enter a .NET Lock which thread 17 is currently holding
.NET Call Stack
Function
System.Threading.Monitor.Enter(System.Object)
Company.MyApplication.Application.Services.Timers.PersistedTimerService.PauseTimer(Company.MyApplication.Services.DataContracts.Timing.ITimerIdentifier, Company.MyApplication.Services.DateTimeWithZone)
Company.MyApplication.Application.Services.Timing.TimerActivityMonitor.CallEndActionIfNoFurtherActivity(Company.MyApplication.Services.DataContracts.Timing.ITimerIdentifier, Company.MyApplication.Services.DateTimeWithZone, System.Action`1, Company.MyApplication.Services.DataContracts.TimeEntrySubmissions.ITimeEntrySubmission)
Company.MyApplication.Application.Services.Timing.TimerActivityMonitor.RunEndAction(Company.MyApplication.Services.DataContracts.Timing.ITimerIdentifier, Company.MyApplication.Services.DateTimeWithZone, System.Action`1, System.Timers.Timer, Company.MyApplication.Services.DataContracts.TimeEntrySubmissions.ITimeEntrySubmission)
Company.MyApplication.Application.Services.Timing.TimerActivityMonitor.RegisterTimerEndAction(Company.MyApplication.Services.DataContracts.Timing.ITimerIdentifier, Company.MyApplication.Services.DateTimeWithZone, System.Action`1, System.TimeSpan, Company.MyApplication.Services.DataContracts.TimeEntrySubmissions.ITimeEntrySubmission)
Company.MyApplication.Application.Services.Timing.EventDrivenTimingService`1[[Company.MyApplication.Services.EventTypes.ApplicationEventType, Company.MyApplication.Services]].PauseTiming(Company.MyApplication.Services.DataContracts.Timing.ITimerIdentifier, Company.MyApplication.Services.DateTimeWithZone, System.TimeSpan, Company.MyApplication.Services.DataContracts.TimeEntrySubmissions.ITimeEntrySubmission)
Company.MyApplication.Application.Services.Timing.EventDrivenTimingService`1[[Company.MyApplication.Services.EventTypes.ApplicationEventType, Company.MyApplication.Services]].PerformItemAction(Company.MyApplication.Services.DataContracts.Timing.ITimerIdentifier, Company.MyApplication.Services.DateTimeWithZone, Company.MyApplication.Application.Services.Timing.TimerAction, System.TimeSpan, Company.MyApplication.Services.DataContracts.TimeEntrySubmissions.ITimeEntrySubmission)
Company.MyApplication.Application.Services.Timing.EventDrivenTimingService`1+<>c__DisplayClass3[[Company.MyApplication.Services.EventTypes.ApplicationEventType, Company.MyApplication.Services]].b__0()
System.Threading.Tasks.Task.Execute()
System.Threading.ExecutionContext.runTryCode(System.Object)
System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode, CleanupCode, System.Object)
System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
System.Threading.Tasks.Task.ExecuteWithThreadLocal(System.Threading.Tasks.Task ByRef)
System.Threading.Tasks.Task.ExecuteEntry(Boolean)
Company.MyApplication.Tools.Tasks.LimitedConcurrencyLevelTaskScheduler.b__3(System.Object)
System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
System.Threading.ThreadPoolWorkQueue.Dispatch()
System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()
Full Call Stack
Function Source
ntdll!NtWaitForMultipleObjects+a
KERNELBASE!WaitForMultipleObjectsEx+e8
kernel32!WaitForMultipleObjectsExImplementation+b3
clr!WaitForMultipleObjectsEx_SO_TOLERANT+91
clr!Thread::DoAppropriateAptStateWait+56
clr!Thread::DoAppropriateWaitWorker+1b1
clr!Thread::DoAppropriateWait+73
clr!CLREvent::WaitEx+c1
clr!AwareLock::EnterEpilogHelper+ca
clr!AwareLock::EnterEpilog+63
clr!AwareLock::Contention+219
clr!JITutil_MonContention+104
0x000007ff`0049414b
0x000007ff`0049401d
0x000007ff`00493e13
0x000007ff`00493c99
0x000007ff`00493b87
0x000007ff`004905f9
0x000007ff`0049046d
mscorlib_ni+abde22
mscorlib_ni+382f68
clr!CallDescrWorker+84
clr!CallDescrWorkerWithHandler+a9
clr!MethodDesc::CallDescr+2a1
clr!ExecuteCodeWithGuaranteedCleanupHelper+152
clr!ReflectionInvocation::ExecuteCodeWithGuaranteedCleanup+1a5
mscorlib_ni+371651
mscorlib_ni+ab8685
mscorlib_ni+ab8480
0x000007ff`004902e1
mscorlib_ni+3bc183
mscorlib_ni+3bb813
mscorlib_ni+3bb665
clr!CallDescrWorker+84
clr!CallDescrWorkerWithHandler+a9
clr!MethodDesc::CallDescr+2a1
clr!MethodDescCallSite::Call+35
clr!QueueUserWorkItemManagedCallback+44
clr!VirtualCallStubManager::GenerateResolveCacheElem+aa
clr!FullSegmentIterator+194
clr!DomainFile::Activate+375
clr!ManagedPerAppDomainTPCount::DispatchWorkItem+e6
clr!ThreadpoolMgr::NewWorkerThreadStart+2e5
clr!ThreadpoolMgr::WorkerThreadStart+3b
clr!Thread::intermediateThreadProc+7d
kernel32!BaseThreadInitThunk+d
ntdll!RtlUserThreadStart+1d