Tag Archive for 'CLR'

[blogging] CLR Application Dump 다루는 Blog

http://blogs.msdn.com/tess/

MS PSS( Product Support Services ) 팀에서 Escalation Engineer일하고 계시는 TESS 님의 Blog 입니다.

다양한 CLR ( .net ) 관련 Debugging 정보를 얻을 수 있습니다.

회사내 정책상 .net을 사용하고 있지 않아 관련 dump나 exception을 정보를 접하기 힘든 저로서는 굉장히 많은 도움을 받고 있지요.

[CLR Stack] Idle GC Thread, Idle CLR Debugger Thread

CLR Base의 프로그램을 실행하면 2개의 기본 CRL Idle Thread가 함께 생성 됩니다.

Idle CLR Debugger Thread
# ChildEBP RetAddr Args to Child
00 00bafe38 7c93e9ab 7c8094e2 00000003 00bafe64 ntdll!KiFastSystemCallRet (FPO: [0,0,0])
01 00bafe3c 7c8094e2 00000003 00bafe64 00000001 ntdll!ZwWaitForMultipleObjects+0xc (FPO: [5,0,0])
02 00bafed8 7c80a075 00000003 00baff1c 00000000 KERNEL32!WaitForMultipleObjectsEx+0×12c (FPO: [Non-Fpo])
03 00bafef4 79f4e8d8 00000003 00baff1c 00000000 KERNEL32!WaitForMultipleObjects+0×18 (FPO: [Non-Fpo])
04 00baff54 79f4e831 2948c117 00000000 79f4e1d0 mscorwks!DebuggerRCThread::MainLoop+0xe9 (FPO: [Non-Fpo])
05 00baff84 79f4e765 2948c127 79f95dba 79f4e1d0 mscorwks!DebuggerRCThread::ThreadProc+0xe5 (FPO: [Non-Fpo])
06 00baffb4 7c80b683 00000000 79f95dba 79f4e1d0 mscorwks!DebuggerRCThread::ThreadProcStatic+0×9c (FPO: [Non-Fpo])
07 00baffec 00000000 79f4e71f 00000000 00000000 KERNEL32!BaseThreadStart+0×37 (FPO: [Non-Fpo])

Idle GC Thread
# ChildEBP RetAddr Args to Child
00 00d7fcd0 7c93e9ab 7c8094e2 00000002 00d7fcfc ntdll!KiFastSystemCallRet (FPO: [0,0,0])
01 00d7fcd4 7c8094e2 00000002 00d7fcfc 00000001 ntdll!ZwWaitForMultipleObjects+0xc (FPO: [5,0,0])
02 00d7fd70 7c80a075 00000002 7a3b84e0 00000000 KERNEL32!WaitForMultipleObjectsEx+0×12c (FPO: [Non-Fpo])
03 00d7fd8c 79ef224b 00000002 7a3b84e0 00000000 KERNEL32!WaitForMultipleObjects+0×18 (FPO: [Non-Fpo])
04 00d7fdac 79fb997b 00172338 00d7feb0 00170d28 mscorwks!WKS::WaitForFinalizerEvent+0×77 (FPO: [Non-Fpo])
05 00d7fdc0 79ef3207 00d7feb0 00000000 00000000 mscorwks!WKS::GCHeap::FinalizerThreadWorker+0×79 (FPO: [Non-Fpo])
06 00d7fdd4 79ef31a3 00d7feb0 00d7fe5c 79f91478 mscorwks!Thread::DoADCallBack+0×32a (FPO: [Non-Fpo])
07 00d7fe68 79ef30c3 00d7feb0 2925c037 00000000 mscorwks!Thread::ShouldChangeAbortToUnload+0xe3 (FPO: [Non-Fpo])
08 00d7fea4 79fb9643 00d7feb0 00000000 0016bc00 mscorwks!Thread::ShouldChangeAbortToUnload+0×30a (FPO: [Non-Fpo])
09 00d7fecc 79fb960d 79fb990e 00000008 00d7ff14 mscorwks!ManagedThreadBase_NoADTransition+0×32 (FPO: [Non-Fpo])
0a 00d7fedc 79fba09b 79fb990e 2925c187 00000000 mscorwks!ManagedThreadBase::FinalizerBase+0xd (FPO: [Non-Fpo])
0b 00d7ff14 79f95a2e 00000000 80662652 8799bc90 mscorwks!WKS::GCHeap::FinalizerThreadStart+0xbb (FPO: [Non-Fpo])
0c 00d7ffb4 7c80b683 00170d28 7c93ee18 001602c0 mscorwks!Thread::intermediateThreadProc+0×49 (FPO: [Non-Fpo])
0d 00d7ffec 00000000 79f959e8 00170d28 00000000 KERNEL32!BaseThreadStart+0×37 (FPO: [Non-Fpo])

Debugging 시에 이러한 스택이 나타난다면 Skip 해도 좋은 부분이지요 .