debug Debugging environment in Scilab

## Syntax

                debug()

## Description

Use to debug Scilab script. After call of `debug()`, you enter in debug mode. This mode allows you to manage `breakpoints`, launch execution with stop on error, execute script step by step, ... In debugging mode, the prompt is `debug>` .

Commands:

h:

Show always the debuger help in the console, whatever is the Scilab running mode.

help:

In Scilab standard running mode (with GUIs), displays the debug() help page in the help browser. Otherwise, displays the help in the console (as with "h").

(q)uit:

Leave debug mode to return to normal mode of Scilab.

(w)here or bt:

Display callstack.

(e)xec or (r)un:

Execute command.

(d)isp var, or (p)rint var:

Display variable `var`.

(c)ontinue:

Continue execution.

(a)bort:

Abort execution.

step(n)ext or next:

Continue execution to next expression.

step(i)n or in:

Continue execution to next expression in sub function.

step(o)ut or out:

Continue execution to next expression in previous function.

(b)reakpoint or break:

    breakpoint function [line [condition]]

Add a breakpoint in a function at line `line`

If a condition is specified, the breakpoint is enabled only if the condition is `%t`

(del)ete [n]:

Remove all breakpoints.

If n is specified, remove breakpoint #n

enable [n]:

Enable all breakpoints.

If n is specified, enable breakpoint #n

disable [n]:

Disable all breakpoints.

If n is specified, disable breakpoint #n

(s)how [n]:

Show all breakpoints information.

If n is specified, show breakpoint #n

## Examples

    //function to overload cosine on string
    function v = %c_cos(val)
        printf("val : %s\n", val);
        v = cos(evstr(val));
    endfunction

    //caller
    function a = test_debug()
        b = cos("%pi");
        a = b * 3;
    endfunction

    debug
    break test_debug
    exec test_debug
    where
    stepin
    disp val
    continue
    quit

    function v = compute(val)
        v = 1;
        for i=1:val
            v = v * i;
        end
    endfunction

    debug
    break compute 4 "i == 5"
    exec compute(10)
    disp val
    disp i
    disp v
    continue
    quit

## History

6.0.0 New version: console interface to Scilab 6 debugger.