Windows System Software -- Consulting, Training, Development -- Unique Expertise, Guaranteed Results
The free OSR Learning Library has more than 50 articles on a wide variety of topics about writing and debugging device drivers and Minifilters. From introductory level to advanced. All the articles have been recently reviewed and updated, and are written using the clear and definitive style you've come to expect from OSR over the years.
Check out The OSR Learning Library at: https://www.osr.com/osr-learning-library/
Hi All,
I am debugging a service hang issue where critical section is being used as synchronization object between threads. I have taken the service memory dump file after it hangs.
When I run the !locks command in the dump file, it lists one CS having Lock count 7 as shown below. When I want to see the stack of the thread that is holding the CS, I see only one function in the stack and that thread is also waiting for an object. How can get full call stack of this thread to check what it is waiting for?
95 Id: af8.3aa8 Suspend: -1 Teb: 000007ffffee8000 Unfrozen # Child-SP RetAddr : Args to Child : Call Site 00 00000000
17caf958 0000000000000000 : 00000000
4ea4718c 0000000077591b06 00000000
00000000 00000000`00000000 : ntdll!ZwWaitForSingleObject+0xa
CritSec lib!g_critsec+0 at 000007fecda9bcb8
WaiterWoken No
LockCount 7
RecursionCount 1
OwningThread 3aa8
EntryCount 0
ContentionCount 31010
*** Locked
Thanks,
Upcoming OSR Seminars | ||
---|---|---|
OSR has suspended in-person seminars due to the Covid-19 outbreak. But, don't miss your training! Attend via the internet instead! | ||
Internals & Software Drivers | 19-23 June 2023 | Live, Online |
Writing WDF Drivers | 10-14 July 2023 | Live, Online |
Kernel Debugging | 16-20 October 2023 | Live, Online |
Developing Minifilters | 13-17 November 2023 | Live, Online |
Comments
Did you verify thread(af8.3aa8) raw call stack? If not please try that. You can use dps command.
Thanks Saikrishna. I was able to get the problem after dumping the raw call stack.