PRB: Unable to Freeze One Thread in WinDbg
PSS ID Number: Q105585
Article last modified on 04-23-1994

3.10

WINDOWS NT


----------------------------------------------------------------------
The information in this article applies to:

 - Microsoft Win32 Software Development Kit (SDK) for Windows NT
   version 3.1
----------------------------------------------------------------------

SYMPTOMS
========

The Notes section of the "Set thread" entry of the WinDbg Help file states

   In any of the above listed states, a thread may be frozen. If a
   thread is at a breakpoint, no threads in that process will run. If
   a thread is at a breakpoint and then frozen, it will still be
   considered stopped until the thread is continued (at which time it
   will still be considered frozen).

If you set a breakpoint in a multithreaded application and freeze a thread
after the breakpoint is hit, all threads stop, as expected. If you then
choose GO on the frozen thread, the message in the Command window is
"Thread is still frozen," which seems fine but all other threads remain
blocked until the thread is unfrozen.

CAUSE
=====

The implementation of ContinueDebugEvent() uses the thread that is being
continued to do some of its work. If the thread is suspended, it cannot
run; therefore, the ContinueDebugEvent operation is not finished until the
thread is resumed.

STATUS
======

Microsoft has confirmed this to be a limitation in WinDbg.

Additional reference words: 3.10
KBCategory: Prg
KBSubcategory: TlsWindbg

=============================================================================

Copyright Microsoft Corporation 1994.
