### 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.