Combining Arena and Group Specifiers
Table 12 defines the selected target when using arena and group specifiers to step a program:
Table 12: Combining Arena and Group Specifiers
Arena specifier combination
Target of command
aC
aS
aW
aL
All processes and threads. (The group specifier is not relevant when you use the all “a” width specifier.)
gC
All processes in the thread of interest’s (TOI)’s control group.
gS
All processes in the TOI’s share group.
gW
All worker threads in the control group that contains the TOI.
gL
All threads in the share group that are currently at the same PC as the TOI.
pC
pS
All threads in the process of interest (POI).
pW
All worker threads in the POI.
pL
All threads in the POI that are currently at the same PC as the TOI.
tC
tS
tW
tL
Just the TOI. The t specifier overrides the group specifier, so all of these specifiers resolve to the current thread.
Here are additional examples that add DPID and DTID numbers to the raw specifier combinations from Table 12:
pW3
All worker threads in process 3.
gW3
All worker threads in the control group that contains process 3. The difference between this and pW3 is that pW3 restricts the focus to just process 3.
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.
3
Specifies process 3. The arena width, POI, and TOI are inherited from the enclosing P/T set, so the exact meaning of this specifier depends on the previous context.
While the slash 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 the process 3 share group that are executing at the same PC as thread 2.
p3/3
Sets the process to process 3. The group of interest (GOI) 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 on all threads in process 3 that are also in group 3.
When you set the process using an explicit group, you might not be including all the threads you expect to be included. This is because commands must look at the TOI, process of interest (POI), and GOI.
NOTE: It is redundant to specify a thread width with an explicit group ID as this width means that the focus is on one thread.
In the following examples, the first argument to the dfocus command defines a temporary P/T set that the CLI command (the last term) operates on. The dstatus command lists information about processes and threads. These 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 threads in the current focus process. The width is process, and the (default) group is the control group.
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. In particular, notice how the prompt changes when you use the C and the D group specifiers.
d1.<> f C
dC1.<
dC1.<> f D
d1.<
d1.<>
Two of these lines end with the less-than symbol (<). These lines are not prompts. Instead, they are the value returned by TotalView when it executes the dfocus command.