### 13.1 Entering Debug Mode

There are two basic means of interrupting the execution of an Octave script. These are breakpoints see Breakpoints, discussed in the next section and interruption based on some condition.

Octave supports three means to stop execution based on the values set in the functions `debug_on_interrupt`, `debug_on_warning` and `debug_on_error`.

— Built-in Function: val = debug_on_interrupt ()
— Built-in Function: old_val = debug_on_interrupt (new_val)
— Built-in Function: debug_on_interrupt (new_val, "local")

> Query or set the internal variable that controls whether Octave will try to enter debugging mode when it receives an interrupt signal (typically generated with `C-c`). If a second interrupt signal is received before reaching the debugging mode, a normal interrupt will occur.

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

— Built-in Function: val = debug_on_warning ()
— Built-in Function: old_val = debug_on_warning (new_val)
— Built-in Function: debug_on_warning (new_val, "local")

> Query or set the internal variable that controls whether Octave will try to enter the debugger when a warning is encountered.

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

— Built-in Function: val = debug_on_error ()
— Built-in Function: old_val = debug_on_error (new_val)
— Built-in Function: debug_on_error (new_val, "local")

> Query or set the internal variable that controls whether Octave will try to enter the debugger when an error is encountered. This will also inhibit printing of the normal traceback message (you will only see the top-level error message).

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