.PU - Display Thread User Space Information

Display thread user space summary information for all (active) threads.
Syntax:
────.PU ──────────────────────┬──────────┬────────────────────
├── # ──┤
├── * ──┤
└── slot ──┘
Parameters:
slot
Display user information for
thread slot slot.
The following short-hand may be used for the slot number:
- The current (last) thread the dispatcher gave control
to. This value is taken from the word a global label:
_TaskNumber
- The debugger default thread slot. This defaults to
the current slot unless overridden by the .S
command.
If no slot number is given then all thread slots are displayed in slot number
order.
Results & Notes:
The .PU command locates each thread's TCB
from the thread slot table, the linear address of which is given by
global variable:
_papTCBSlots
or by traversing the process tree using TCBpTCBNext (TCB +0x14),
TCBpPTDA (TCB +0x08) and ptda_pTCBHead (PTDA +
0x20) fields.
Output from the .PU command appears in tabular form as follows:
Slot Pid Ord pPTDA Name pstkframe CS:EIP SS:ESP cbargs
0001 0001 0001 ffe3c7d4 *ager ffe3bf54 1e30:00001794 0030:0000a402 0000
0002 0001 0002 ffe3c7d4 *tsd
0003 0001 0003 ffe3c7d4 *ctxh
0004 0001 0004 ffe3c7d4 *kdb
0005 0001 0005 ffe3c7d4 *lazyw
0006 0001 0006 ffe3c7d4 *asyncr
0008 0002 0001 7b9e4020 pmshell 7b7d7f4c d02f:0000272d 001f:0003f8b8 0008
*000a 0002 0002 7b9e4020 pmshell 7b7dbf44 d087:00003413 bfff:000007a6 0010
000b# 0002 0003 7b9e4020 pmshell 7b7ddf48 d087:0000351a bfff:00000fc0 000c
Each of the fields has the following meaning:
slot
The unique (hexadecimal) index in to
the thread slot table of all threads.
This value may be flagged with:
- to the left to signify the current (or last)
dispatched thread.
- to the right to signify the Kernel Debugger
or Dump Formatter default thead slot.
Slot may be found in the TCBNumber (TCB + 0x2) field
of the TCB
Pid
Ord
pPTDA
Linear
address of the control block representing the
process to which this thread belongs. The address is taken from TCBpPTDA
(TCB +0x08).
Name
pstkframe
The address of the ring 0 stack frame that
saved the user (ring 2 or ring 3) registers at the last transition to ring
0. For internal threads that have never run in ring 2 or ring 3 or for the
currently running ring 3 thread this field will appear blank.
The address for the user stack frame is taken from TCB_pFrameBase (TCB
+ 0x3c). See .R command for
further information on displaying registers saved in the user stack frame.
CS:EIP
The user
(ring 2 or ring 3) CS:EIP saved in the ring 0 user stack frame the last
time the thread made a transition to ring 0. This field will appear blank
if the thread is an internal ring 0 thread, currently running in ring 3
or the TSD for this thread is paged out. See
.I command for information on paging
in a TSD.
SS:ESP
The
user (ring 2 or ring 3) SS:ESP saved in the ring 0 user stack frame the
last time the thread made a transition to ring 0. This field will appear
blank if the thread is an internal ring 0 thread, currently running in ring
3 or the TSD for this thread is paged out. See
.I command for information on paging
in a TSD.
cbargs
The
user (ring 2 or ring 3) cbargs saved in the
ring 0 user stack frame the last time the thread made a transition to ring
0. This field will appear blank if the thread is an internal ring 0 thread,
currently running in ring 3 or the TSD for this
thread is paged out. See .I command
for information on paging in a TSD.
[Back: Scheduler Priority Queues]
[Next: .R - Display User's Registers]