NetInverse Developers Blog

April 9, 2009
Category: Debugging — Tags: , , , , — admin @ 10:16 am

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

No Comments »

No comments yet.

RSS feed for comments on this post. TrackBack URL

Leave a comment

©2009 NetInverse. All rights reserved. Powered by WordPress