debug Среда отладки в Scilab

## Синтаксис

                debug

## Описание

`debug` входит в режим отладки для функций, написанных на языке Scilab. Приглашение становится `отладка>` .

Этот режим позволяет вам управлять `точками останова` , запускать выполнение с остановкой при ошибке, выполнять функцию шаг за шагом, ...

### Команды in debug mode

h:
Показать справку в командном окне.

help:
Показать справку в справочном браузере, если это возможно. В противном случае отобразить справку в командном окне

(q)uit:
Покинуть режим отладки и вернуться в нормальный режим Scilab'а.

(w)here или bt:
Отобразить стек вызовов.

(e)xec или (r)un:
Выполнить команду.

(d)isp var, или (p)rint var:
Отобразить переменную `var`.

(c)ontinue:
Продолжить исполнение.

(a)bort:
Прервать исполнение.

step(n)ext или next:
Продолжить исполнение до следующего выражения.

step(i)n или in:
Продолжить исполнение до следующего выражения в подфункции.

step(o)ut или out:
Продолжить исполнение до следующего выражения в предыдущей функции.

(b)reakpoint или break:
`breakpoint function [line [condition]]` : Добавить точку останова в функцию на строке `line`. Если условие определено, то точка останова срабатывает только если условие равно `%t`.

(del)ete [n]:
Удалить все точки останова. Если `n` определена, то удаляется точка останова №`n`.

enable [n]:
Включить все точки останова. Если `n` определена, то включается точка останова №`n`.

disable [n]:
Отключить все точки останова. Если `n` определена, то отключается точка останова №`n`.

(s)how [n]:
Показать информацию обо всех точках останова. Если `n` определена, то показывается точка останова №`n`.

### How to debug a script

Debugging a series of Scilab instructions out of any function requires first to embed them in a dummy function. Example: We want to debug the following instructions

                    a = 1;
                    b = linspace(a, 3, 10);
                    c = exp(a + %i + c);

Then we must first rewrite them as

                    function script()
                        a = 1;
                        b = linspace(a, 3, 10);
                        c = exp(a + %i + c);
                    endfunction

and execute this code (in normal Scilab mode) in order to define script() in Scilab. Then breakpoints can be defined and handled within the script() function as for any other function.

## Примеры

    //функция для перегрузки косинуса на строковом значении
    function v = %c_cos(val)
        printf("val : %s\n", val);
        v = cos(evstr(val));
    endfunction

    // функция-вызыватель
    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

## История

6.0.0 Новая версия: интерфейс командной строки для отладчика Scilab 6.