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

Command: dbwhere

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

  See also: dbstatus, dbcont, dbstep, dbup.

Command: dbtype
Command: dbtype lineno
Command: dbtype startl:endl
Command: dbtype startl:end
Command: dbtype func
Command: dbtype func lineno
Command: dbtype func startl:endl
Command: 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: dbwhere, dbstatus, dbstop.

Command: dblist
Command: 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.

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

Built-in Function: 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`.

Command: dbstep
Command: dbstep n
Command: dbstep in
Command: dbstep out
Command: 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.