13.4 Debug Mode

There are three additional support functions that allow the user to find out where in the execution of a script Octave entered the debug mode, and to print the code in the script surrounding the point where Octave entered debug mode.

: dbwhere

In debugging mode, report the current file and line number where execution is stopped.

See also: dbstack, dblist, dbstatus, dbcont, dbstep, dbup, dbdown.

: dbtype
: dbtype lineno
: dbtype startl:endl
: dbtype startl:end
: dbtype func
: dbtype func lineno
: dbtype func startl:endl
: dbtype func startl:end

Display a script file with line numbers.

When called with no arguments in debugging mode, display the script file currently being debugged.

An optional range specification can be used to list only a portion of the file. The special keyword "end" is a valid line number specification for the last line of the file.

When called with the name of a function, list that script file with line numbers.

See also: dblist, dbwhere, dbstatus, dbstop.

: dblist
: dblist n

In debugging mode, list n lines of the function being debugged centered around the current line to be executed.

If unspecified n defaults to 10 (+/- 5 lines)

See also: dbwhere, dbtype, dbstack.

You may also use isdebugmode to determine whether the debugger is currently active.

: isdebugmode ()

Return true if in debugging mode, otherwise false.

See also: dbwhere, dbstack, dbstatus.

Debug mode also allows single line stepping through a function using the command dbstep.

: dbstep
: dbstep n
: dbstep in
: dbstep out
: dbnext

In debugging mode, execute the next n lines of code.

If n is omitted, execute the next single line of code. If the next line of code is itself defined in terms of an m-file remain in the existing function.

Using dbstep in will cause execution of the next line to step into any m-files defined on the next line.

Using dbstep out will cause execution to continue until the current function returns.

dbnext is an alias for dbstep.

See also: dbcont, dbquit.

When in debug mode the RETURN key will execute the last entered command. This is useful, for example, after hitting a breakpoint and entering dbstep once. After that, one can advance line by line through the code with only a single key stroke. This feature may be disabled using the auto_repeat_debug_command function.

: val = auto_repeat_debug_command ()
: old_val = auto_repeat_debug_command (new_val)
: auto_repeat_debug_command (new_val, "local")

Query or set the internal variable that controls whether debugging commands are automatically repeated when the input line is empty (typing just RET).

When called from inside a function with the "local" option, the variable is changed locally for the function and any subroutines it calls. The original variable value is restored when exiting the function.

© 1996–2020 John W. Eaton
Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.
Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.
Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions.
https://octave.org/doc/v6.3.0/Debug-Mode.html