Scilab Home page | Wiki | Bug tracker | Forge | Mailing list archives | ATOMS | File exchange
Please login or create an account
Change language to: English - Français - Português - 日本語 -
Справка Scilab >> Scilab > Отладка > debug

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.
Scilab Enterprises
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Tue Jul 20 11:21:15 CEST 2021