dcheckpoint
Creates a checkpoint image of processes (SGI only)
Format:
dcheckpoint [ after_checkpointing ] [ -by process_set ] [ -no_park ]
[ -ask_attach_parallel | -no_attach_parallel ]
[ -no_preserve_ids ] [ -force ] checkpoint-name
Arguments:
after_checkpointing
Defines the state of the process both before and after the checkpoint. Use one of the following options:
-delete
Processes exit after being checkpointed.
-detach
Processes continue running after being checkpointed. In addition, TotalView detaches from them.
-go
Processes continue running after being checkpointed.
-halt
Processes halt after they are checkpointed.
-by process_set
Indicates the set of processes that will be checkpointed. If you do not use a process_set option, TotalView only checkpoints the focus process. Your options are:
ash
Checkpoint the array session. (SGI only)
hid
Checkpoint the hierarchy rooted in the focus process.
pgid
Checkpoint the entire UNIX process group.
sid
Checkpoint the entire process session.
-no_park
Tells TotalView that it should not park all processes before TotalView begins checkpointing them. If you use this option, you will also need to use the drestart command's -no_unpark option. Checkpoints that will be restarted from a shell must use this option.
-ask_attach_parallel
Asks if TotalView should reattach to parallel processes of a parallel job. (Some systems automatically detach you from processes being checkpointed.)
-no_attach_parallel
Tells TotalView that it should not reattach to processes from which the checkpointing processes detached. (Some systems automatically detach you from processes being checkpointed.)
-no_preserve_ids
Lets TotalView assign new IDs when it restarts a checkpoint. If you do not use this option, the same IDs are used.
-force
Tells TotalView to overwrite an existing checkpoint.
checkpoint-name
The name being assigned to the checkpoint.
Description:
The dcheckpoint command saves program and process information. into the checkpoint-name file. This information includes process and group IDs. Some time later, you will use the drestart command to restart the program.
Note: This command does not save TotalView breakpoint information.
The following restrictions exist when you are trying to checkpoint IRIX processes.
- IRIX will not checkpoint a process that is running remotely and which communicates using sockets. As the TotalView Server (tvdsvr) uses sockets to redirect stdin, stdout, and stderr, you will need to used the drun command to modify the way your processes send information to a tty before creating a checkpoint.
- Because SGI MPI makes extensive use of sockets, you cannot checkpoint SGI MPI programs.
The after_checkpointing options let you specify what happens after the checkpoint operation concludes. If you do not specify an option, the CLI tells the checkpointed processes that they should stop. This lets you investigate a program's state at the checkpoint position. In contrast, -go tells the CLI that it should let the processes continue to run. The -detach and -halt options are used less frequently. The -detach option shuts down the CLI and leaves the processes running. The -halt option is similar to -detach, differing only in that processes started by the CLI and TotalView are also terminated.
The process_set options tell TotalView which processes it should checkpoint. While the focus set can only contain one process, processes within the same process group, process session, process hierarchy, or array session can also be included within the same checkpoint. If you do not use one of the -by options, TotalView only checkpoints the focus process.
If the focus group contains more than one process, the CLI displays an error message.
Just before TotalView begins checkpointing your program, it temporarily stops (that is, parks) the processes that being checkpointed. Parking ensures that the processes do not run freely after a dcheckpoint or drestart operation. (If they did, your code would begin running before you get control of it.) If you will be restarting the checkpoint file outside of TotalView, you must use the -no_park option.
On some operating systems (including SGI), the CLI detaches from processes before they are checkpointed. By default, the CLI automatically reattaches to them. If you want something different to occur, you can tell the CLI that it should never reattach (-no_attach_parallel) or that it should ask you if it should reattach (-ask_attach_parallel).
Examples:
dcheckpoint check1
Checkpoints the current process. TotalView writes the checkpoint information into the check1 file. These processes stop.
f3 dcheckpoint check1
Checkpoints process 3. Process 3 stops. TotalView writes the checkpoint information into the check1 file.
f3 dcheckpoint -go check1
Checkpoints process 3. Process 3 continues to run. TotalView writes the checkpoint information is into the check1 file.
f3 dcheckpoint -by pgid -detach check1
Checkpoints process 3 and all other processes in the same UNIX process group. All of the checkpointed processes continuing running but they run detached from the CLI. TotalView writes the checkpoint information into the check1 file.