The null ebp at the top is kind of odd, I think this stack might be the
result of a demarshalled RPC call. But anyway. As you can see it's
blocking on a critical section, but I don't know how to find out which
thread has got suck inside it. I tried putting trace statements in
Rtl(Enter/Leave)CriticalSection, oops, not a good idea, waaaay too much
spew there to be useful.

So, what I'd like to know is whether there is any way to find out which
thread has entered that critical section. Also, is this even a good
idea, or is there a better way to debug thread deadlocks?

thanks -mike

normally there's a message printed out when a critsect times out like:
section 0x12345678 myCS wait timed out, retrying (60 sec) tid=xxxx
and the tid gives you the thread id of the thread holding the cs
then, you can use it for example in 'bt <tid>' to get a backtrace of that particular thread and look at what it's doing


A+

--
Eric Pouech




Reply via email to