Specifying Groups in P/T Sets
This section extends the arena specifier syntax to include groups.
If you do not include a group specifier, the default is the
control group. The CLI only displays a target group in the focus string if you set it to something other than the default value.
You most often use target group specifiers with the stepping commands, as they give these commands more control over what’s being stepped.
Use the following format to add groups to an arena specifier:
[width_letter][group_indicator][pid][.tid]
This format adds the
group_indicator to what was discussed in
“Specifying Processes and Threads”.
In the description of this syntax, everything appears to be optional. But, while no single element is required, you must enter at least one element. TotalView determines other values based on the current focus.
TotalView lets you identify a group by using a letter, number, or name.
A Group Letter
You can name one of TotalView’s predefined sets. Each set is identified by a letter. For example, the following command sets the focus to the workers group:
dfocus W
The following are the group letters. These letters are in uppercase:
C
Control group
All processes in the control group.
D
Default control group
All processes in the control group. The only difference between this specifier and the C specifier is that this letter tells the CLI not to display a group letter in the CLI prompt.
S
Share group
The set of processes in the control group that have the same executable as the arena’s TOI.
W
Workers group
The set of all worker threads in the control group.
L
Lockstep group
A set that contains all threads in the share group that have the same PC as the arena’s TOI. If you step these threads as a group, they proceed in lockstep.
A Group Number
You can identify a group by the number TotalView assigns to it. The following example sets the focus to group 3:
dfocus 3/
The trailing slash tells TotalView that you are specifying a group number instead of a PID. The slash character is optional if you’re using a group_letter. However, you must use it as a separator when entering a numeric group ID and a pid.tid pair. For example, the following example identifies process 2 in group 3:
p3/2
A Group Name
You can name a set that you define. You enter this name with slashes. The following example sets the focus to the set of threads contained in process 3 that are also contained in a group called my_group:
dfocus p/my_group/3