TotalView User Guide : Part II: Setting Up : Setting Up Parallel Debugging Sessions : Debugging PVM (Parallel Virtual Machine) Applications : Automatically Acquiring PVM Processes

Automatically Acquiring PVM Processes
When you start TotalView as part of a PVM debugging session, TotalView takes the following actions:
*
TotalView makes sure that no other PVM taskers are running. If TotalView finds a tasker on a host that it is debugging, it displays the following message and then exits:
Fatal error: A PVM tasker is already running on host 'host'
*
TotalView finds all the hosts in the PVM configuration. Using the pvm_spawn() call, TotalView starts a TotalView Server (tvdsvr) on each remote host that has the same architecture type as the host TotalView is running on. It tells you it has started a debugger server by displaying the following message:
Spawning TotalView Debugger Server onto PVM
host 'host'
If you add a host with a compatible computer architecture to your PVM debugging session after you start TotalView, it automatically starts a debugger server on that host.
After all debugger servers are running, TotalView intercepts every PVM task created with the pvm_spawn() call on hosts that are part of the debugging session. If a PVM task is created on a host with a different computer architecture, TotalView ignores that task.
When TotalView receives a PVM tasker event, the following actions occur:
1
2
If a saved breakpoint file for the executable exists and you have enabled automatic loading of breakpoints, TotalView loads breakpoints for the process.
3
If you answer Yes, TotalView stops the process before it enters main() (that is, before it executes any user code). This allows you to set breakpoints in the spawned process before any user code executes. On most computers, TotalView stops a process in the start() routine of the crt0.o module if it is statically linked. If the process is dynamically linked, TotalView stops it just after it finishes running the dynamic linker. Because the Process Window displays assembler instructions, you need to use the View > Lookup Function command to display the source code for main().
For more information on this command, see Finding the Source Code for Functions”.

Rogue Wave Software, Inc.
Voice: (303) 473-9118
rwonlinedocs@roguewave.com