unload threads, and thread pool timer threads.|
-|**ThreadState \<** *State value field* **>**|Displays the state of the thread. The `value` parameter is the value of the `State` field in the **Threads** report output. See the [ThreadState example](#threadstate-example) for usage.|
+|**ThreadState \<** *State value field* **>**|Displays the state of the thread. The `value` parameter is the value of the `State` field in the **Threads** report output.
Example:
0:003> !Threads
ThreadCount: 2
UnstartedThread: 0
BackgroundThread: 1
PendingThread: 0
DeadThread: 0
Hosted Runtime: no
PreEmptive GC Alloc Lock
ID OSID ThreadOBJ State GC Context Domain Count APT Exception
0 1 250 0019b068 a020 Disabled 02349668:02349fe8 0015def0 0 MTA
2 2 944 001a6020 b220 Enabled 00000000:00000000 0015def0 0 MTA (Finalizer)
0:003> !ThreadState b220
Legal to Join
Background
CLR Owns
CoInitialized
In Multi Threaded Apartment
|
|**TraverseHeap** [**-xml**] \<*filename*>|Writes heap information to the specified file in a format understood by the CLR profiler. The **-xml** option causes the **TraverseHeap** command to format the file as XML.|
|**U** [**-gcinfo**] [**-ehinfo**] [**-n**] \<*MethodDesc address*> | \<*Code address*>|Displays an annotated disassembly of a managed method specified either by a `MethodDesc` structure pointer for the method or by a code address within the method body. The **U** command displays the entire method from start to finish, with annotations that convert metadata tokens to names.
The **-gcinfo** option causes the **U** command to display the `GCInfo` structure for the method.
The **-ehinfo** option displays exception information for the method. You can also obtain this information with the **EHInfo** command.
The **-n** option disables the display of source file names and line numbers. If the debugger has the option SYMOPT_LOAD_LINES specified, SOS looks up the symbols for every managed frame and, if successful, displays the corresponding source file name and line number. You can specify the **-n** option to disable this behavior.|
|**VerifyHeap**|Checks the garbage collector heap for signs of corruption and displays any errors found.
Heap corruptions can be caused by platform invoke calls that are constructed incorrectly.|
@@ -201,37 +201,6 @@ The following command displays information about the metadata token at the addre
!token2ee unittest.exe 02000003
```
-### ThreadState example
-
-The following example demonstrates using the **ThreadState** command to decode thread state values from the **Threads** command output.
-
-First, display all threads to get state values:
-
-```console
-0:003> !Threads
-ThreadCount: 2
-UnstartedThread: 0
-BackgroundThread: 1
-PendingThread: 0
-DeadThread: 0
-Hosted Runtime: no
- PreEmptive GC Alloc Lock
- ID OSID ThreadOBJ State GC Context Domain Count APT Exception
- 0 1 250 0019b068 a020 Disabled 02349668:02349fe8 0015def0 0 MTA
- 2 2 944 001a6020 b220 Enabled 00000000:00000000 0015def0 0 MTA (Finalizer)
-```
-
-Then decode a specific state value (for example, `b220`):
-
-```console
-0:003> !ThreadState b220
- Legal to Join
- Background
- CLR Owns
- CoInitialized
- In Multi Threaded Apartment
-```
-
## See also
- [Tools](index.md)