Specifier Combinations
The following table indicates what specifier combinations mean for the CLI's stepping commands:
Specifier |
Meaning |
aC |
Specifies all threads. |
aS |
Specifies all threads. |
aW |
Specifies all threads in all workers groups. |
aL |
Specifies all threads. Every thread is a member of a control group and a member of a share group and a member of a lockstep group. Consequently, three of these definitions mean "all threads". |
gC |
Specifies all threads in the thread of interest's control group. |
gS |
Specifies all threads in the thread of interest's share group. |
gW |
Specifies all worker threads in the control group containing the thread of interest. |
gL |
Specifies all threads in the same share group within the process containing the thread of interest that have the same PC. |
pC |
Specifies all threads in the control group of the process of interest. This is the same as gC. |
pS |
Specifies all threads in the process that participate in the same share group as the thread of interest. |
pW |
Specifies all worker threads in the process of interest. |
pL |
Specifies all threads in the process of interest whose PC is the same as the thread of interest. |
tC |
These four combinations, while syntactically correct, are meaningless. The t specifier overrides the group specifier. So, for example, tW and t both name the current thread. |
tS |
tW |
tL |
Note: Stepping commands behave differently if the group being stepped is a process group or a thread group. For example, "aC" and "aS" perform the same action while "aL" is different.
Here are a few examples:
pW3
All worker threads in process 3.
pW3.<
All worker threads in process 3. Notice that the focus of this specifier is the same as the previous example's.
gW3
All worker threads in the control group containing process 3. Notice the difference between this and pW3, which restricts the focus to one of the processes in the control group.
gL3.2
All threads in the same share group as process 3 that are executing at the same PC as thread 2 in process 3. The reason this is a share group and not a control group is that different share group can only reside within one control group.
/3
Specifies processes and threads in process 3. As the arena width, process of interest, and thread of interest are inherited from the existing P/T set, the exact meaning of this specifier depends on the previous context.
While the "/" is unnecessary because no group is indicated, it is syntactically correct.
g3.2/3
The 3.2 group ID is the name of the lockstep group for thread 3.2. This group includes all threads in process 3's share group that are executing at the same PC as thread 2.
p3/3
Sets the process to process 3. The group of interest is set to group 3. If group 3 is a process group, most commands ignore the group setting. If group 3 is a thread group, most commands act upon all threads in process 3 that are also in group 3.
Setting the process with an explicit group should be done with care as the combination may not be what you expect given that commands, depending on their scope, must look at the thread of interest, process of interest, and group of interest.
Note: Specifying thread width with an explicit group ID probably does not mean much.
In the following examples, the first argument to the dfocus command defines a temporary P/T set upon which the CLI command (the last term) will operate. The dstatus command lists information about processes and threads.
Note: The examples assume that the global focus was "d1.<" initially.
dfocus g dstatus
Displays the status of all threads in the control group.
dfocus gW dstatus
Displays the status of all worker threads in the control group.
dfocus p dstatus
Displays the status of all worker threads in the current focus process. The width here, as in the previous example, is process and the (default) group is the control group; intersecting this width and the default group creates a focus that is also the same as the previous example.
dfocus pW dstatus
Displays the status of all worker threads in the current focus process. The width is process level and the target is the workers group.
The following example shows how the prompt changes as you change the focus. Notice how the prompt changes when using the C and the D group specifiers.
d1.<> f C
dC1.<
dC1.<> f D
d1.<
d1.<>