MO

Causes the debugger to be entered on reaching the line that immediately follows the current call to another module; in other words, it steps over the call. Until then, single-stepping is disabled, but any other debugger entry conditions are obeyed.

The call may be an explicit CALL statement, a GOSUB statement or an external user function.

Syntax

MO{O}

Operation

The MO command is valid only if there is a call on the current line, otherwise it emulates a LF command.

The debugger is entered with a Return To Module reason.

Only one MO or MX command can be active at any one time in a single context. If the debugger is entered in the meantime (for example, because of a break) then any subsequent MO and MX command returns a Command? response.

MOO turns off MO stepping over (and MX stepping out) operations.

Example

:debug m.main 
DEBUG Cmd/Stmt:   M.MAIN 1
*E1 
*V1 
*

Execution Count:  M.MAIN 3
3  > CALL M.SUB1
*MO 
In M.SUB1
In M.SUB2
In M.SUB3
In M.SUB4
In M.SUB4-LOCAL

DEBUG Cmd/Stmt:   M.SUB4 26, [11]
26  [11]    > *
*

Return To Module: M.MAIN 4
4 > CRT "In M.MAIN"
*W 
1   rem TEST PROGRAM.
2   DEFFUN M.FUNC(A)
3   CALL M.SUB1
4 > CRT "In M.MAIN"
*