![]() ![]() Nothing in the Windows operating system recognizes that anything is different about this thread.īy default, all threads are unfrozen. However, "frozen" is only a debugger setting. This action is similar to suspending the thread in some ways. You can suspend threads even when you are performing noninvasive debugging. When the debugger executes or detaches from the process, the thread then has a suspend count of one and remains suspended, even if other threads in the process are executing. The most common use for these commands is to raise a specific thread's suspend count from one to two. The ~m (Resume Thread) command decrements the specified thread's suspend count by one. ![]() The ~n (Suspend Thread) command increments the specified thread's suspend count by one. You can control the suspend count of any thread from the debugger by using the following methods: When the debugger executes the process, it temporarily decrements all suspend counts by one. If the debugger detaches from the process, it decrements all suspend counts by one. When the debugger attaches to a process, it increments the suspend counts of all threads in that process by one. Typically, each thread has a suspend count of zero. If the count is zero or lower, the system runs the thread when appropriate. If this count is one or larger, the system does not run the thread. These two actions have somewhat different effects.Įach thread has a suspend count that is associated with it. The debugger can change the execution of a thread by suspending the thread or by freezing the thread. To change the current process or thread, you can use the following methods: (WinDbg only) The Processes and Threads window To display process and thread information, you can use the following methods: For more information about how processes and threads are manipulated in kernel mode, see Changing Contexts. In kernel-mode debugging, processes and threads are not controlled by the methods that are described in this section. However, you can use the debugger to change the current process and thread and to freeze or unfreeze individual threads. Similarly, the current thread is the one that was active when the debugger attached to the process or that caused the exception. When debugging begins, the current process is the one that the debugger is attached to or that caused the exception that broke into the debugger. The current process also determines the virtual address mappings that the debugger uses. The actions of many debugger commands are determined by the identity of the current process and thread. Similarly, the current or active thread is the thread that the debugger is currently controlling. The current or active process is the process that is currently being debugged. When you are performing user-mode debugging, you activate, display, freeze, unfreeze, suspend, and unsuspend processes and threads. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |