RESTORE - restore program state from last SAVE command.

Usage:

rest

Description:

This command is used in conjunction with the save command. It lets you back up a program to the point where the last SAVE command was issued. Functionally, here's what happens:

  1. If the size of allocated memory has changed since the last SAVE took place, the size is adjusted accordingly. If no SAVE command has been performed yet, LODT will refuse to perform a REST, even if a *tcp file exists.
  2. The *tcp file is loaded, using a DRL RESTOR.
  3. The success or failure of the RESTORE command is reported to the user.
  4. At this point, the entire state of the program has been restored and the TRACE package appears to have just completed a SAVE command. In fact, if other commands had been specified after the SAVE command on the same input line, they will now be processed again!

Multiple restores from the same save are permissible. Be aware that all trace options, breakpoint locations, etc. in effect at the time of the SAVE will be reinstated, even though they may have changed. Note that files in use at the time of the SAVE will not be repositioned.

For obvious reasons, multiple commands cannot be specified on the same input line following the RESTORE command. As with SAVE, parameters are not specified with the RESTORE command.

Since the restore is done using a DRL RESTOR, rather than a DRL CALLSS, the program descriptor does not change to CMDU in the process.

If the user does some file switching, and tries to load a save file from another LODT session, results are unpredictable. It may work, or give a core hole which is too large, or produce a bad DRL argument, because the core hole is too small. The user will either get a "successful" return (LODT is lying), or get blown out of the water.

Copyright © 1996, Thinkage Ltd.