Spec-Zone.ru › Octave 9

13.4 Режим отладки

Существуют три дополнительные вспомогательные функции, позволяющие пользователю узнать, где именно при выполнении сценария Octave перешёл в режим отладки, а также вывести фрагмент кода сценария вокруг точки, в которой Octave перешёл в режим отладки.

: dbwhere

В режиме отладки сообщает текущий файл и номер строки, на которой остановилось выполнение.

См. также: dbstack, dblist, dbstatus, dbcont, dbstep, dbup, dbdown.

: dbtype
: dbtype lineno
: dbtype startl:endl
: dbtype startl:end
: dbtype fcn
: dbtype fcn lineno
: dbtype fcn startl:endl
: dbtype fcn startl:end

Выводит файл сценария с номерами строк.

При вызове без аргументов в режиме отладки выводит файл сценария, который отлаживается в данный момент.

Можно указать необязательный диапазон, чтобы вывести только часть файла. Специальное ключевое слово "end" является допустимым указанием номера последней строки файла.

При вызове с именем функции выводит соответствующий файл сценария с номерами строк.

См. также: dblist, dbwhere, dbstatus, dbstop.

: dblist
: dblist n

В режиме отладки выводит n строк отлаживаемой функции вокруг текущей строки, которая должна быть выполнена.

Если n не задано, по умолчанию используется значение 10 (± 5 строк).

См. также: dbwhere, dbtype, dbstack.

Можно также использовать isdebugmode, чтобы определить, активен ли отладчик в данный момент.

: tf = isdebugmode ()

Возвращает true, если включён режим отладки, и false в противном случае.

См. также: dbwhere, dbstack, dbstatus.

Режим отладки также позволяет пошагово выполнять функцию по одной строке с помощью команды dbstep.

: dbstep
: dbstep n
: dbstep in
: dbstep out
: dbnext …

В режиме отладки выполняет следующие n строк кода.

Если n не указано, выполняется следующая строка кода. Если следующая строка кода сама определена в m-файле, выполнение остаётся в текущей функции.

Команда dbstep in при выполнении следующей строки переходит внутрь любых m-файлов, вызываемых в этой строке.

Команда dbstep out продолжает выполнение до возврата из текущей функции.

Примечание по программированию: dbnext — это псевдоним dbstep; эти команды можно использовать взаимозаменяемо.

См. также: dbcont, dbquit.

В режиме отладки клавиша RETURN выполняет последнюю введённую команду. Это полезно, например, после срабатывания точки останова и однократного ввода dbstep. После этого можно переходить по коду строка за строкой, нажимая всего одну клавишу. Эту возможность можно отключить с помощью функции auto_repeat_debug_command.

: val = auto_repeat_debug_command ()
: old_val = auto_repeat_debug_command (new_val)
: old_val = auto_repeat_debug_command (new_val, "local")

Запрашивает или задаёт внутреннюю переменную, определяющую, будут ли команды отладки автоматически повторяться, если строка ввода пуста (введена только клавиша RET).

При вызове внутри функции с параметром "local" значение переменной изменяется локально для этой функции и всех вызываемых ею подпрограмм. Исходное значение переменной восстанавливается при выходе из функции.

© 1996–2026 The Octave Project Developers
Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.
Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions.
https://docs.octave.org/v9.4.0/Debug-Mode.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API