TotalView Online Help : Root Window : File Menu Commands : File > New Program : Program Tab
Program Tab
The actions you can perform using the Program tab are:
*Start a new process
*Attach to an existing process
*Open a core file
Depending upon the kind of process, you can supply other information:
*You can define startup arguments and environment variables in the Arguments tab.
*You can define how your program interacts with standard I/O.
*You can describe how your MPI program starts.
If the process has children that called execve(), TotalView tries to determine each child’s executable. If TotalView cannot determine the executables for the children, you need to delete (kill) the parent process and start it under TotalView control.
If the executable is a multiprocess program, TotalView asks if you want to attach to all relatives of the process. To examine all processes, select Yes.
*This is the default behavior. You can change this behavior by using commands within the File > Preference’s Parallel Tab.
Start a new process
To load a program, type the program’s name in the Program field. If you had previously loaded the program into TotalView, its name is remembered and you may find it on the pull-down list contained within this field. The name you enter can either be a full or relative path name.
If instead of typing the program’s name, you want to use a file selection dialog box to locate it, press the Browse button.
If you enter just a file name, TotalView searches for the file in the directories you specified with the File > Search Path command and in all the directories named in your PATH environment variable.
If the program is to run on a different machine, you can select the computer’s name from the On host field. If this machine isn’t on the list, select the Add host button. After TotalView displays a dialog box, enter the machine’s name or an IP address.
By selecting the Enable memory debugging program, you tell TotalView to set up your program for Memory Debugging. Enabling it here is the same as enabling it within the Memory Debugger or using the Process Window’s Debug> Enable Memory Debugging command.
The Enable memory debugging and Halt on memory errors check boxes perform the same functions as the Enable memory debugging and On memory event, halt execution checkboxes do within the Advanced Options on MemoryScape’s Memory Debugging Options page. This is the equivalent of the basic Low setting.
The Enable ReplayEngine check box is visible only on Linux-x86 and Linux-86-64 platforms. If you do not have a license for ReplayEngine, enabling the check box has no effect and TotalView displays an error message when your program begins executing. Selecting this check box tells TotalView that it should instrument your code so that you can move back to previously executed lines.
 
Attach to process
After selecting Attach to process, TotalView shows a list of all your processes on the local host. If TotalView is connected to multiple hosts, the On host field contains an additional all hosts line. Select all hosts to see the processes from all of the hosts, useful for attaching to a multiprocess program running on several different hosts.
 
Figure 4: Attach to an Existing Process
In the displayed list, processes to which TotalView is already attached are shown in gray. The processes displayed in black are not currently running under TotalView control. To attach TotalView to any of these processes, select the process or processes, then press the OK button.
Use the Filter by program or path field to view only the processes with a program or local path name matching the name you enter, helpful for finding a process or processes in which you are interested.
In some cases, the name provided to TotalView by your operating system may not be the actual name of the program. In this case, you will not be able to simply select the name and press the OK button. Instead, you should
*Determine what its actual name is by using a command such as ls in a shell window.
*Select the name as this will fill in much of the program’s name.
*Move to the Program control, and type its actual name, then press the OK button.
If you wish to attach to a multiprocess program, you can either pick up the processes one at a time or you can restart the program under TotalView control so that the processes are automatically picked up as they are forked. In most cases, this requires you to link your program with the dbfork library, discussed in the TotalView Reference Guide.
If the process you are attaching to is one member of a collection of related processes created with fork() calls, TotalView asks if you want to also attach to all of its relatives. If you answer yes, TotalView attaches to all the process’s ancestors, descendants, and cousins.
You can control how TotalView attaches to processes by using the commands in the Parallel Tab within the File > Preferences dialog box.
*If some of the processes in the collection have called exec(), TotalView tries to determine the new executable file for the process. If TotalView appears to read the wrong file, you should start over, compile the program using the dbfork library, and start the program under TotalView control.
The information in this area has the following columns:
*Program: The name of the executing program. Notice that TotalView indents some names. This indentation indicates the parent/child relationship within the UNIX process hierarchy.
*Host: The name of the machine upon which the program is executing.
*Local Path: The program’s path on the local machine, that is, the machine where TotalView is running. A process running on a remote host may be executing a program from a directory path valid only on the remote host. TotalView maps the remote path name of the program to a local path name and searches for the program using the File > Search Path > Programs dialog. The remote path name is tried first, but if that search fails, it is retried using only the program name. TotalView makes sure that the local path of the program is compatible with the architecture of the host on which the process is running. For example, if the program name is “/bin/bash,” the local host is Linux-x86_64, and the remote host is Linux-Power, TotalView will not use the local Linux-x86_64 “/bin/bash” because it is not compatible with the remote Linux-Power host. If TotalView cannot find an architecture-compatible program, local path is left empty.
*State: A letter indicating the program’s state, as follows:
Character and Meaning
Definition
I (Idle)
Process has been idle or sleeping for more than 20 seconds.
R (Running)
Process is running or can run.
S (Sleeping)
Process has been idle or sleeping for less than 20 seconds.
T (Stopped)
Process is stopped.
Z (Zombie)
Process is a “zombie”; that is, it is a child process that has terminated and is waiting for its parent process to gather its status.
*PID: The operating system program ID.
*PPID: The parent program’s ID.
If you attach to multiple processes, TotalView places all of them into the same control group, allowing you to stop and start them as a group.
For information on entering information in the Program and On host areas, see Start a new process”.
Open a core file
The information you specify when opening a core file is nearly identical to that you enter a regular process. It differs in that you also have to enter the name of the core file. You must enter a program name in the Program field in addition to the Core file field because TotalView cannot know if this program is actually associated with the process.
You can use the Browse button to search the file system for the core file.
When naming a core file, you can use glob-style wild cards.
For information on the Program and host fields, see Start a new process”.