MAINDEBUG User's Guide, Chapter 3

previous   next   top   complete contents   complete index   framed top   this page unframed


3. General Commands

3.1. Changing to/from Display-Oriented Interface: {-}@

In the line-oriented interface, the @ command causes the debugger to switch to the display-oriented interface. The user is prompted for the display MODULE (unless the eparms file contains the command DONOTPROMPTFORDISPLAYMODULE) and, if the display MODULE name ends in a comma, for the terminal port and baud rate. The current file is displayed with the cursor positioned to the same place as the } cursor was in the line-oriented debugger, and the current editor mode is set to command mode. If there is no current file, CMDLOG is used. In the display interface, the @ command acts like <ecm>.

In the display interface, the -@ command returns to the line interface, provided that the display interface was entered by means of the MAINDEBUG @ command.

3.2. Quitting: Q

Q stands for “quit”.

If a MODULE is currently being executed under the debugger, it is aborted and control is returned to the debugger. Otherwise, execution of the debugger is terminated.

The debugger asks whether you really want to quit (in case you typed Q by mistake, perhaps thinking you were talking to the editor). Typing Y<eol> at this point raises the exception $abortProgramExcpt, whereas typing N<eol> aborts the quit command.

If any breakpoints are set, the Q command prompts whether to remove them before returning. If they are not removed, the debugger automatically gains control if a breakpoint is encountered during subsequent execution.

3.3. Quitting Unconditionally: +Q

+Q unconditionally exits the debugger without prompting for any information.

3.4. Counts: {n}

In the line-oriented interface, a command line with no commands (i.e., no letters, optional count only, followed by an <eol>) re-executes the most recently executed command, except that the old count and subcount, if any, are replaced by the new ones, if any. Any arguments that follow the command are re-used.

Commands executed as a part of a breakpoint command are ignored when determining the most recently executed command for the purposes of the {n} command. For example, if a breakpoint is set with the command:

B:V foo<eol>

and then the C command is issued, and then the breakpoint is reached, typing <eol> to the debugger prompt causes the C command to be executed rather than V foo.

3.5. Help: ?

The user is prompted for which command summary to display. A response of D displays the general and debugging commands; A displays the debugger indirect arguments (see Section 2.8.1); E displays the editing commands.

3.6. Defining Macros: /cs/

Define a macro with name c to be the STRING s.

c is any alphabetic character (case is not distinguished). Thus, there are 26 available macros with the names a through z. Each macro is initially defined as the empty STRING.

s is any command sequence, except that a slash within s can occur only within STRING quotes, and in the line interface, the final slash must appear on the same line as the initial one. Recursive definitions, such as /c...=c.../, are allowed, though they could cause the debugger to loop indefinitely.

Use the I (Info) command to display all macro definitions. There is currently no way to save and restore macros between debugging sessions.

3.7. Invoking Macros: {n}{-}=c

The =c command invokes the macro c, where c is any alphabetic character.

The effect is to replace =c with the STRING defined for c. {n} and {-} apply only to the first command in the STRING that replaces =c.


previous   next   top   complete contents   complete index   framed top   this page unframed

MAINDEBUG User's Guide, Chapter 3