What Is a Group?
Groups are fundamental to multiprocess and multithread control in TotalView. Each process or thread group is defined by a unique numeric ID. A group is either a process group containing only processes, or a thread group containing only threads.
TotalView automatically defines several groups that are used in common operations, including: the control group (all processes in a program, which are normally controlled together); the share group (all processes in the program that share a single image); the workers group (all worker threads in a control group); the lockstep group (all threads that share the same PC in a share group); and the all group (all processes in the debug session).
Internally, a group is just a table of processes or threads. Groups that TotalView defines are automatically updated as new threads and processes are created or old threads and processes exit. The contents of these groups therefore vary during program execution. Users may also define custom groups. These have identical properties as the fundamental groups of TotalView, but are not automatically maintained by the debugger.
A group contains no information regarding the thread or process of interest, nor does it identify the level at which a command should operate (i.e., should it operate on only the thread, the entire process, or the group of processes?). Use an arena to specify the target, or focus, of a command. An arena in TotalView is a group plus a specific process and thread, along with an optional width indicator to define the subset that should be affected by a command. A P/T set is composed of a list of arena specifiers. For more information, see Arenas and P/T Sets.