|
 |
|
|
Understanding Multiprocess Programs
TotalView has special features for debugging multiprocess programs.
- Process groups
TotalView treats multiprocess programs as groups of processes. When debugging multiprocess programs, you can view information about all process groups and can view information about a multiprocess program. Using TotalView, you can start and stop individual groups.
- Separate windows for each process
TotalView can display each process in its own TotalView Process Window, displaying information for that process. You can monitor the status, thread list, breakpoint list, and source code for each process. You do not have to display all the process windows in a multiprocess program; instead, you can choose only those Process Windows that are important to you.
Because display space is always limited on your monitor, TotalView tries to reuse Process Windows unless you tell it not to. In this way, you are not forced to have hundreds of windows when you are working with hundreds of processes.
- Sharing of breakpoints among processes
You can control if a breakpoint is shared among child processes and if all processes in the group stop when any process in the group reaches a breakpoint. Like most behaviors in TotalView, you can set preferences or use command-line options that configure how TotalView behaves.
- Barrier breakpoints
In addition to "normal" breakpoints, TotalView allows you to create process and thread barrier breakpoints. A barrier breakpoint differs from a normal breakpoint in that it holds every thread or process in a group that reaches the barrier until all reach it. When the last in the group reaches the barrier, TotalView releases all of these held processes. This lets you synchronize a group of processes or threads to the same location.
- Process and thread group-level single-stepping
TotalView allows you to single-step groups of processes and groups of threads using one command.
- Multiple symbol tables
If you are debugging more than one executable at the same time, TotalView automatically handles the symbol table for each.
|
|
|
|
|