Defining the GOI, POI, and TOI
This chapter consistently uses the following three related acronyms:
GOI—Group of Interest
POI—Process of Interest
TOI—Thread of Interest
These terms are important in the TotalView process/thread model because TotalView must determine the scope of what it does when it executes a command. For example,
Chapter 13, “About Groups, Processes, and Threads” introduced the types of groups TotalView defines. That chapter ignored what happens when you execute a TotalView command on a group. For example, what does “stepping a group” actually mean? What happens to processes and threads that aren’t in this group?
Associated with these three terms is a fourth term: arena. The arena is the collection of processes, threads, and groups that are affected by a debugging command. This collection is called an arena list.
In the GUI, the arena is most often set using the pulldown list in the toolbar. You can also set the arena using commands in the menubar. For example, there are eight next commands. The difference between them is the arena; that is, the difference between the next commands is the processes and threads that are the target of what the next command runs.
When TotalView executes any action command, the arena decides the scope of what can run. It doesn’t, however, determine what does run. Depending on the command, TotalView determines the TOI, POI, or GOI, and then executes the command’s action on that thread, process, or group. For example, suppose TotalView steps the current
control group:
TotalView needs to know what the TOI is so that it can determine what threads are in the
lockstep group—TotalView only lets you step a lockstep group.
The lockstep group is part of a share group.
By knowing what the TOI is, the GUI also knows what the GOI is. This is important because, while TotalView knows what it will step (the threads in the lockstep group), it also knows what it will allow to run freely while it is stepping these threads. In the CLI, the P/T set determines the TOI.