About Arena Specifier Combinations
The following table lists what’s selected when you use arena and group specifiers to step your program:
Specifier | Specifies |
---|
aC | All threads. |
aS | All threads. |
aW | All threads in all workers groups. |
aL | 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 | All threads in the Thread of Interest (TOI) control group. |
gS | All threads in the TOI share group. |
gW | All worker threads in the control group that contains the TOI. |
gL | All threads in the same share group within the process that contains the TOI that have the same PC as the TOI. |
pC | All threads in the control group of the Process of Interest (POI). This is the same as gC. |
pS | All threads in the process that participate in the same share group as the TOI. |
pW | All worker threads in the POI. |
pL | All threads in the POI whose PC is the same as the TOI. |
tC | Just the TOI. The t specifier overrides the group specifier, so all of these specifiers resolve to the current thread. |
tS |
tW |
tL |
NOTE: Stepping commands behave differently if the group being stepped is a process group rather than a thread group. For example, aC and aS perform the same action, but aL is different.
If you don’t add a PID or TID to your arena specifier, TotalView does it for you, taking the PID and TID from the current or default focus.
The following are some additional examples. These examples add PIDs and TIDs numbers to the raw specifier combinations listed in the previous table:
pW3
All worker threads in process 3.
pW3.<
All worker threads in process 3. The focus of this specifier is the same as the focus in the previous example.
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 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 groups can reside only in one control group.
/3
Specifies processes and threads in process 3. The arena width, POI, and TOI are inherited from the existing 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, 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 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. The intersection of this width and the default group creates a focus that is the same as in 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. 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.