Set or display the Kernel Debugger's and Dump Formatter's default thread slot.
This command affects the default operation of the following:
D command
E command
U command.
Syntax:
────.S ─────┬───────┬─────────┬──────────┬──────────────────── └── S ──┘ ├── * ──┤ └── slot ──┘
Parameters:
slot
The following short-hand may be used for the slot number:
_TaskNumber
If no slot number is given .S displays the current thread slot number in message:
Current task number: nnnn
where nnnn is the thread slot number.
This option sets these registers as if the thread context had just been switched by the OS/2 Dispatcher. The R command will show the thread in kernel mode, about to be run.
No actual updating of register values takes place. Only default values are effected.
The new defaults are derived as follows:
ESP
Note:
The intent of this option is to simulate the correct value of the ring 0 stack selector for the default thread. This is only safe to use in commands that make explicit reference to the stack selector, for example:
.SS 21 R DD SS:ESP
If an indirect reference is made to selector 30, for example by referring to a symbol from the TASKAREA segment then the adjustment to the default slot is not made. For example:
DW JFN_Tabel l14will only display the JFT for the current thread slot. To display the JFT for another slot requires the following technique:
DW %ptda_address+JFN_Table-ptda_start l14
Results & Notes:
The .S command sets certain default values such that the view of the user's space in the new default slot is as if the the thread context had switched. Linear and LDT selector based addresses will be accesses correctly by the Dump Formatter and Kernel Debugger. However, certain system data that are updated by a context switch are not changed and continue to display in the system's current thread context. These items include:
Task Register (TR)
GDT descriptor table entries for selectors 28, 30, 38 and 150b
Current TSS ring 0, and ring 2 stack selectors and pointers.
Global and System copy of the Current Local Information Segments.
The Thread Local Memory Area and Local Information Segment mapped by LDT descriptor dfff.
Note:
Descriptor dfff maps a global shared memory object, but it's data is copied from the incoming PTDA and TCB when a context switch occurs. This achieves the effect of thread local memory.