SOS Command: !Dumpstack
!DumpStack [-EE] [top stack [bottom stack]]
[x86 documentation]
This command provides a verbose stack trace obtained by “scraping.” Therefore the output is very noisy and potentially confusing. The command is good for viewing the complete call stack when “kb” gets confused. For best results, make sure you have valid symbols.
-EE will only show managed functions.
You can also pass a stack range to limit the output. Use the debugger extension !teb to get the top and bottom stack values.
[ia64 and x64 documentation]
Rather than scraping, !DumpStack mimics the debugger’s “K” command. Stackwalking is done very differently on these platforms, so SOS allows the Windows Debugger to unwind the frames, and supplies managed code information where possible. The [top stack [bottom stack]] arguments are ignored, but -EE functions just the same.
Example output:
!dumpstack ee OS Thread Id: 0x36c (876) TEB information is not available so a stack size of 0xFFFF is assumed Current frame: KiFastSystemCallRet ChildEBP RetAddr Caller,Callee 00010184 005f0052 005f0052 0001050c 003d0052 003d0052 000107c4 005f0052 005f0052 0001084c 005f0052 005f0052 00010974 003d0052 003d0052
!dumpstack OS Thread Id: 0x36c (876) Current frame: KiFastSystemCallRet ChildEBP RetAddr Caller,Callee 0012ec40 7c827d0b NtWaitForSingleObject+0xc 0012ec44 77e61d1e WaitForSingleObjectEx+0x88, calling NtWaitForSingleObject 0012ecb4 79e8c639 LogHelp_TerminateOnAssert+0x61 0012ecf8 79e8c56f DllUnregisterServerInternal+0x10523, calling LogHelp_TerminateOnAssert+0x32 0012ed2c 79f90fad CreateApplicationContext+0xab3d, calling InterlockedDecrement 0012ed30 79e8d018 LogHelp_TerminateOnAssert+0xa40, calling 0012ed48 79e8c58e DllUnregisterServerInternal+0x10542, calling DllUnregisterServerInternal+0x104dc 0012ed5c 7a105d65 CoUninitializeCor+0x4474, calling DllUnregisterServerInternal+0x1052b 0012ed84 77e61d1e WaitForSingleObjectEx+0x88, calling NtWaitForSingleObject 0012ed90 77e61d43 WaitForSingleObjectEx+0xad, calling GetTickCount+0x73 0012edac 7c8279bb NtSetEvent+0xc 0012edb0 77e62321 SetEvent+0x10, calling NtSetEvent 0012ede0 7a105eab CoUninitializeCor+0x45ba, calling CoUninitializeCor+0x43d7 0012edf4 7a10624f CoUninitializeCor+0x495e, calling CoUninitializeCor+0x45a2 0012ee08 79f90729 CreateApplicationContext+0xa2b9, calling DllUnregisterServerInternal+0x955 0012ee20 79e79cea , calling 0012ee24 79e79cfd , calling 0012ee40 7a2d140b CreateHistoryReader+0xe857 0012ee4c 7a2e6235 CreateHistoryReader+0x23681, calling CreateHistoryReader+0xe821 0012eeb4 79f38701 CopyPDBs+0x2235, calling CreateHistoryReader+0x2342e 0012eef4 79f77796 CorExitProcess+0x3bd60, calling CorExitProcess+0x3bcfa 0012ef2c 79f5f56b CorExitProcess+0x23b35 0012ef54 79e79cea , calling 0012ef6c 79f5f3a5 CorExitProcess+0x2396f, calling CorExitProcess+0x23aad 0012efa0 79edc2f8 GetMetaDataInternalInterface+0x9e05, calling CorExitProcess+0x238b8 0012efbc 7c858135 RtlIpv4StringToAddressExW+0x167b7, calling RtlReleaseResource 0012efcc 79edc4f5 GetMetaDataInternalInterface+0xa002, calling GetMetaDataInternalInterface+0x9dad 0012eff0 7c828752 RtlRaiseStatus+0xe0 0012f014 7c828723 RtlRaiseStatus+0xb1, calling RtlRaiseStatus+0xba 0012f038 7c8315c2 RtlSubtreePredecessor+0x208, calling RtlRaiseStatus+0x7e 0012f088 7c879f23 RtlpNtMakeTemporaryKey+0x918f, calling _CIpow+0x464 0012f08c 7c85391a RtlIpv4StringToAddressExW+0x11f9c, calling RtlpNtMakeTemporaryKey+0x8f93 0012f098 7c83e7f5 RtlAbsoluteToSelfRelativeSD+0x662, calling _CIpow+0x464 0012f0bc 7c82855e KiUserExceptionDispatcher+0xe, calling RtlSubtreePredecessor+0x17c 0012f3c0 00ff019a (MethodDesc 0x933198 +0x3a IEnumerableTest.Utils.EnumToArray[[IEnumerableTest.Program+RoleType, LinqSelectTest]]()) ====> Exception Code 0 cxr@12f0f4 exr@12a000 0012f26c 7c82a0fc RtlAllocateHeap+0x126, calling _CIpow+0x464 0012f270 79e7a08c , calling RtlAllocateHeap 0012f27c 79e7a0ab , calling 0012f294 79e7c451 DllUnregisterServerInternal+0x405, calling DllUnregisterServerInternal+0x3e4 0012f2a8 79e7a0ab , calling 0012f2ac 79e7a10a , calling 0012f2c0 79e79c98 , calling RtlGetLastWin32Error 0012f2c8 79e7f293 DllUnregisterServerInternal+0x3247, calling 0012f41c 00ff00b9 (MethodDesc 0x933000 +0x49 IEnumerableTest.Program.Main(System.String[])), calling (MethodDesc 0x933198 +0 IEnumerableTest.Utils.EnumToArray[[IEnumerableTest.Program+RoleType, LinqSelectTest]]()) 0012f480 79e71b4c 0012f490 79e821f9 DllUnregisterServerInternal+0x61ad, calling 0012f4e4 79e9605b CoUninitializeEE+0x2997, calling CoUninitializeEE+0x297e 0012f510 79e96571 CoUninitializeEE+0x2ead, calling DllUnregisterServerInternal+0x610e 0012f53c 79e96920 CoUninitializeEE+0x325c, calling memcpy 0012f54c 79e964ae CoUninitializeEE+0x2dea, calling 0012f558 79e964be CoUninitializeEE+0x2dfa, calling DllUnregisterServerInternal+0x1f14 0012f5dc 79e7e953 DllUnregisterServerInternal+0x2907, calling DllUnregisterServerInternal+0x2894 0012f5f8 79f28ad4 NGenCreateNGenWorker+0x35f3, calling DllUnregisterServerInternal+0x28ee 0012f648 79e965a4 CoUninitializeEE+0x2ee0, calling CoUninitializeEE+0x2d53 0012f664 79e965c2 CoUninitializeEE+0x2efe, calling CoUninitializeEE+0x2ec1 0012f67c 79eefac5 GetPrivateContextsPerfCounters+0xf546, calling CoUninitializeEE+0x2ee4 0012f790 79e7e953 DllUnregisterServerInternal+0x2907, calling DllUnregisterServerInternal+0x2894 0012f7ac 79f28ad4 NGenCreateNGenWorker+0x35f3, calling DllUnregisterServerInternal+0x28ee 0012f7e0 79eef9e5 GetPrivateContextsPerfCounters+0xf466, calling NGenCreateNGenWorker+0x360c 0012f840 79e8c4ec DllUnregisterServerInternal+0x104a0, calling RtlRestoreLastWin32Error 0012f870 7c83e7f5 RtlAbsoluteToSelfRelativeSD+0x662, calling _CIpow+0x464 0012f874 7c83e5d0 RtlAbsoluteToSelfRelativeSD+0x43d, calling RtlAbsoluteToSelfRelativeSD+0x447 0012f880 7c829f59 RtlFreeHeap+0x142, calling _CIpow+0x464 0012f890 79e8c574 DllUnregisterServerInternal+0x10528, calling 0012f8b0 79e7a1d2 , calling 0012f8b4 79e7a1f1 , calling 0012f8c0 79f90fad CreateApplicationContext+0xab3d, calling InterlockedDecrement 0012f8d0 79e8c574 DllUnregisterServerInternal+0x10528, calling 0012f8d4 79e8c58e DllUnregisterServerInternal+0x10542, calling DllUnregisterServerInternal+0x104dc 0012f8e0 79e7d9f5 DllUnregisterServerInternal+0x19a9, calling DllUnregisterServerInternal+0x983 0012f8f4 7a105d74 CoUninitializeCor+0x4483, calling DllUnregisterServerInternal+0x1993 0012f8f8 79e7c85c DllUnregisterServerInternal+0x810, calling 0012f8fc 7a105da9 CoUninitializeCor+0x44b8, calling DllUnregisterServerInternal+0x806 0012f910 79e79cea , calling 0012f914 7c827d0b NtWaitForSingleObject+0xc 0012f918 77e61d1e WaitForSingleObjectEx+0x88, calling NtWaitForSingleObject 0012f954 7c829f59 RtlFreeHeap+0x142, calling _CIpow+0x464 0012f958 79e7a1b6 , calling RtlFreeHeap 0012f964 79e7a1d2 , calling 0012f97c 79e7c7dd DllUnregisterServerInternal+0x791, calling 0012f98c 79e7a1d2 , calling 0012f990 79e7a1f1 , calling 0012f9a4 79e79c98 , calling RtlGetLastWin32Error 0012f9ac 79e7a18b , calling 0012f9d4 79e7a18b , calling 0012f9d8 79e81d94 DllUnregisterServerInternal+0x5d48, calling 0012f9dc 79e81d9a DllUnregisterServerInternal+0x5d4e, calling 0012f9fc 79e81d9a DllUnregisterServerInternal+0x5d4e, calling 0012fa20 79e81d9a DllUnregisterServerInternal+0x5d4e, calling 0012fa24 79e82279 DllUnregisterServerInternal+0x622d, calling 0012fa48 79eeff35 GetPrivateContextsPerfCounters+0xf9b6, calling GetPrivateContextsPerfCounters+0xf3c2 0012fb1c 79ebdc2f StrongNameFreeBuffer+0x1a87, calling GetPrivateContextsPerfCounters+0xe46c 0012fb24 79e7f1e8 DllUnregisterServerInternal+0x319c, calling 0012fb28 79e975ce CoUninitializeEE+0x3f0a, calling DllUnregisterServerInternal+0x3192 0012fb44 79ebdc38 StrongNameFreeBuffer+0x1a90, calling 0012fb48 79ebdc56 StrongNameFreeBuffer+0x1aae, calling 0012fb78 7c83e7f5 RtlAbsoluteToSelfRelativeSD+0x662, calling _CIpow+0x464 0012fb80 79e8233b DllUnregisterServerInternal+0x62ef, calling 0012fb9c 7c829f59 RtlFreeHeap+0x142, calling _CIpow+0x464 0012fbac 7c827d0b NtWaitForSingleObject+0xc 0012fbb0 77e61d1e WaitForSingleObjectEx+0x88, calling NtWaitForSingleObject 0012fbbc 77e61d43 WaitForSingleObjectEx+0xad, calling GetTickCount+0x73 0012fbf0 79e8c4c7 DllUnregisterServerInternal+0x1047b, calling RtlRestoreLastWin32Error 0012fbf4 79e8c4ce DllUnregisterServerInternal+0x10482, calling 0012fc20 79e8c4ec DllUnregisterServerInternal+0x104a0, calling RtlRestoreLastWin32Error 0012fc2c 79e8c650 LogHelp_TerminateOnAssert+0x78, calling 0012fc4c 7c82a0fc RtlAllocateHeap+0x126, calling _CIpow+0x464 0012fc60 79e8c650 LogHelp_TerminateOnAssert+0x78, calling 0012fc64 79e8c56f DllUnregisterServerInternal+0x10523, calling LogHelp_TerminateOnAssert+0x32 0012fc70 79e8c574 DllUnregisterServerInternal+0x10528, calling 0012fca0 79f90fad CreateApplicationContext+0xab3d, calling InterlockedDecrement 0012fcb0 79e8c574 DllUnregisterServerInternal+0x10528, calling 0012fcb4 79e8c58e DllUnregisterServerInternal+0x10542, calling DllUnregisterServerInternal+0x104dc 0012fcc0 79e7d9f5 DllUnregisterServerInternal+0x19a9, calling DllUnregisterServerInternal+0x983 0012fcd4 7a105d74 CoUninitializeCor+0x4483, calling DllUnregisterServerInternal+0x1993 0012fcd8 79e7c85c DllUnregisterServerInternal+0x810, calling 0012fcdc 7a105da9 CoUninitializeCor+0x44b8, calling DllUnregisterServerInternal+0x806 0012fcf0 79e79cea , calling 0012fda8 79eef719 GetPrivateContextsPerfCounters+0xf19a, calling 0012fdac 7a2d2f55 CreateHistoryReader+0x103a1, calling 0012fdc8 79e8233b DllUnregisterServerInternal+0x62ef, calling 0012fdcc 79e883cb DllUnregisterServerInternal+0xc37f, calling DllUnregisterServerInternal+0x62be 0012fde0 79e81ee6 DllUnregisterServerInternal+0x5e9a, calling DllUnregisterServerInternal+0x1d57 0012fdec 79e8840b DllUnregisterServerInternal+0xc3bf, calling DllUnregisterServerInternal+0x5e8d 0012fdf0 79e8841f DllUnregisterServerInternal+0xc3d3, calling 0012fdf4 79e98317 CoUninitializeEE+0x4c53, calling 0012fe14 79e7d9f5 DllUnregisterServerInternal+0x19a9, calling DllUnregisterServerInternal+0x983 0012fe28 79efbeed ClrCreateManagedInstance+0x7bdf, calling DllUnregisterServerInternal+0x1993 0012fe2c 79e7c85c DllUnregisterServerInternal+0x810, calling 0012fe30 79efbf24 ClrCreateManagedInstance+0x7c16, calling DllUnregisterServerInternal+0x806 0012fe60 79f07c2e GetIdentityAuthority+0x22e8, calling GetPrivateContextsPerfCounters+0xe393 0012fe70 79f07c45 GetIdentityAuthority+0x22ff, calling 0012fee8 79efbf24 ClrCreateManagedInstance+0x7c16, calling DllUnregisterServerInternal+0x806 0012feec 79ef94d4 ClrCreateManagedInstance+0x51c6, calling ClrCreateManagedInstance+0x756b 0012fef0 79ef94f3 ClrCreateManagedInstance+0x51e5, calling 0012ff18 79ef011f _CorExeMain+0x168, calling GetPrivateContextsPerfCounters+0xf5a0 0012ff68 79ef004f _CorExeMain+0x98, calling _CorExeMain+0x11f 0012ffb0 79007c24 _CorExeMain+0x34 0012ffc0 77e6f23b ProcessIdToSessionId+0x209