|
Установить
контрольную точку |
Синтаксис:
dbstop [in] <имя М-функции>
dbstop [in] <имя М-функции>
[at] <номер строки>
dbstop [if] error
dbstop [if] naninf
dbstop [if] infnan
Описание:
Группа команд dbstop устанавливает режим отладки
в среде системы MATLAB. Она позволяет установить
контрольную точку в определенной строке
М-функции или вызвать прерывание в случае
возникновения предупреждения или ошибки. Если
установленное условие оказалось выполненным,
выводится специальное приглашение K>>, которое
разрешает выполнить любую команду системы MATLAB.
Команда dbstop [in] <имя М-функции> останавливает
исполнение процедуры в первой строке М-функции
как только она будет вызвана. Служебное слово in,
помещенное в квадратные скобки [ ], является
необязательным.
Команда dbstop [in] <имя М-функции> [at] <номер
строки> останавливает выполнение в заданной
строке указанного М-файла. В состав имени функции
может быть включен путь доступа. Служебные слова
in и at, помещенные в квадратные скобки [ ], являются
необязательными.
Команда dbstop if error устанавливают контрольную
точку по условию, связанному с возникновением
ошибки при исполнении модуля. В случае
возникновения такой ситуации можно проверить
переменные рабочей области и последовательность
вызова функций, приведших к ошибке. Однако
продолжить выполнение М-файла оказывается
невозможным.
Команды bstop if naninf и bstop if infnan устанавливают
контрольную точку по условию, связанному с
появлением результата NaN или inf.
Команда dbstop if warning устанавливают контрольную
точку по условию, связанному с появлением
предупреждения при исполнении модуля:
- если контрольная точка определяется номером
строки, то исполнение модуля прерывается перед
этой строкой;
- если именем модуля, то останов перед первой
исполнимой строкой;
- если условием if error, то останов при появлении
ошибки;
- если условиями if naninf, if infnan, то останов при
получении результата NaN или inf.
Сопутствующие команды: DBCONT, DBSTEP, DBCLEAR, DBTYPE,
DBSTACK, DBUP, DBDOWN, DBSTATUS, DBQUIT, PARTIALPATH.
|
Удаление
контрольных точек |
Синтаксис:
dbclear in <имя
М-функции>
dbclear in <имя
М-функции> at <номер строки>
dbclear all in <имя
М-функции>
dbclear all
dbclear if error
dbclear if warning
dbclear if naninf
dbclear if infnan
Описание:
Команды из группы dbclear удаляют контрольные
точки, установленные ранее соответствующей
командой dbstop.
Команда dbclear [in] <имя М-функции> удаляет все
контрольные точки в данном М-файле. Служебное
слово in, помещенное в квадратные скобки [ ],
является необязательным.
Команда dbclear [in] <имя М-функции> [at] <номер
строки> удаляет контрольную точку в заданной
строке данной М-функции. Служебные слова in и at,
помещенные в квадратные скобки [ ], являются
необязательными.
Команда dbclear all [in] <имя М-функции> удаляет все
контрольные точки в данном М-файле. Служебное
слово in, помещенное в квадратные скобки [ ],
является необязательным.
Команда dbclear all удаляет во всех активных
М-функциях все контрольные точки, за исключением
тех, которые связаны с фиксацией предупреждений
и ошибок.
Команды dbclear if error и dbclear if warning удаляют
контрольные точки, установленные командами dbstop if
error и dbstop if warning, соответственно.
Команды dbclear if naninf и dbclear if infnan удаляют
контрольные точки, установленные командами dbstop if
naninf и dbstop if infnan, соответственно.
Сопутствующие команды: DBCONT, DBDOWN, DBQUIT, DBSTACK,
DBSTATUS, DBSTEP, DBSTOP, DBTYPE, DBUP, PARTIALPATH.
|
Выполнить одну или
несколько строк программы в режиме отладки |
Синтаксис:
dbstep
dbstep <количество строк>
dbstep in
Описание:
Группа команд dbstep позволяет управлять режимом
отладки и включает 3 команды.
- Команда dbstep реализует построчное исполнение
М-функции.
- Команда dbstep <количество строк> допускает
исполнение сразу нескольких строк.
- Команда dbstep in связана с исполнением строки, в
которой присутствует вызов другой М-функции. В
последнем случае, если следующая строка содержит
вызов М-функции, то применение команды dbstep in
позволяет создать контрольную точку в первой
строке вызываемой функции.
Сопутствующие команды: DBCLEAR, DBCONT, DBDOWN, DBQUIT,
DBSTACK, DBSTATUS, DBSTOP, DBTYPE, DBUP
Синтаксис:
dbcont
Описание:
Команда dbcont вызывает исполнение М-функции до
следующей контрольной точки, установленной
командами dbstop или dbstep.
Сопутствующие команды: DBCLEAR, DBDOWN, DBQUIT, DBSTACK,
DBSTATUS, DBSTEP, DBSTOP, DBTYPE, DBUP .
|
Стек вызываемых
М-функций |
Синтаксис:
dbstack [ST, I] = dbstack
Описание:
Команда dbstack выводит на терминал номера строк и
имена вызванных М-функций, начиная от
контрольной точки и до самого внешнего модуля, за
исключением М-сценария (Script-файла).
Оператор [ST, I] = dbstack возвращает стек вызванных
функций в виде массива записей (структуры) ST
размера m?1 с полями ST.line, ST.name. Текущей рабочей
области присваивается индекс I=1; при однократном
использовании команды dbup индекс I увеличивается
на 1, так что самый высокий индекс имеет базовая
рабочая область системы MATLAB.
Пример:
Рассмотрим использование команды dbstack при
останове в некоторой контрольной точке:
K” dbstack
> In d:\matlab5\sqsum.m at line 3
In d:\matlab5\variance.m at line 3
Рассмотрим использование оператора [ST, I] = dbstack
при останове в той же контрольной точке:
[ST, I] = dbstack
ST =
2x1 struct array with fields:
line
name
I = 1
Выведем содержимое полей ST.name и ST.line
K”ST.name
ans = d:/matlab5/sqsum.m
ans = d:/matlab5/variance.m
K” ST.line
ans = 3
ans = 3
Сопутствующие команды: DBCLEAR, DBCONT, DBDOWN, DBQUIT,
DBSTATUS, DBSTEP, DBSTOP, DBTYPE, DBUP.
|
Переход между
рабочими областями снизу вверх |
Синтаксис:
dbup
Описание:
Команда dbup осуществляет переход в стеке
вызываемых М-функций снизу вверх. Все переменные
доступны для просмотра (команды who, whos) и
обработки, и можно проследить, как они изменялись
вплоть до значения, которое было передано
отлаживаемому модулю. Рабочая область
переменных самого внешнего модуля называется
базовоой рабочей областью. Для продолжения
отладки выполнения команды, обратной dbup (команда
dbdown), не требуется.
Сопутствующие команды: DBCLEAR, DBCONT, DBDOWN, DBQUIT,
DBSTACK, DBSTATUS, DBSTEP, DBSTOP, DBTYPE
|
Переход между
рабочими областями сверху вниз |
Синтаксис:
dbdown
Описание:
Команда dbdown применяется совместно с командой
dbup для перемещения между рабочими областями
вызываемых модулей. Эта команда противоположна
по своему действию команде dbup. Команда dbdown
реализует перемещение только в том случае, если
выполнена хотя бы одна команда dbup.
Сопутствующие команды: DBCLEAR, DBCONT, DBQUIT, DBSTACK,
DBSTATUS, DBSTEP, DBSTOP, DBTYPE, DBUP.
|
Cписок контрольных
точек данной М-функции |
Синтаксис:
dbstatus
dbstatus <имя М-функции>
s = dbstatus
Описание:
Команда dbstatus выводит на терминал список всех
контрольных точек, включая контрольные точки,
связанные с ошибками и предупреждениями, а также
с результатами вычислений вида NaN и Inf.
Команда dbstatus <имя М-функции> выводит на
терминал список всех контрольных точек,
определенных для данной М-функции. Эту команду
можно использовать в формах dbstatus class/<имя
М-функции>, dbstatus private/<имя М-функции>, dbstatus
private/class/<имя М-функции>, чтобы создать список
контрольных точек для методов, частных функций
или частных методов соответственно. Кроме того,
во всех этих случаях можно связывать имя функции
с подфункцией в форме dbstatus <имя
М-функции>/<имя подфункции>.
Оператор s = dbstatus возвращает информацию о
контрольных точках в виде массива записей
(структуры) размера m?1 с полями s.name, s.line, s.cond,
которые содержат имена М-функций, вектор номеров
строк с контрольными точками, строки условий (error,
warning или naninf).
Пример.
Получим список всех контрольных точек:
K” dbstatus
Breakpoint for d:\matlab5\sqsum.m is on
line 3.
Breakpoints for d:\matlab5\variance.m are
on lines 3, 4.
Получим список всех контрольных точек в виде
массива записей размера 2x1:
K” s = dbstatus
s =
2x1 struct array with fields:
name
line
cond
Выведем содержимое полей s.name, s.line, s.cond:
K” s.name |
K” s.line |
K” s.cond |
ans = d:\matlab5\sqsum.m |
ans = 3 |
ans = '' |
ans = d:\matlab5\variance.m |
ans = 3 4 |
ans = '' |
Получим список контрольных точек, когда в
состав М-функции variance включена подфункция sqsum:
K” dbstatus
Breakpoint for
d:\matlab5\variance.m is on line 4.
Breakpoint for
d:\matlab5\variance.m (sqsum) is on line 7.
Получим список контрольных точек подфункция
sqsum:
K” dbstatus
variance/sqsum
Breakpoint for
d:\matlab5\variance.m (sqsum) is on line 7.
Сопутствующие команды: DBCLEAR, DBCONT, DBDOWN, DBQUIT,
DBSTACK, DBSTEP, DBSTOP, DBTYPE, DBUP.
|
Текст М-функции с
указанием номеров строк |
Синтаксис:
dbtype<имяМ-функции>
dbtype <имя
М-функции><начало> : <конец>
Описание:
Команда dbtype <имя М-функции> <начало> :
<конец> позволяет вывести на терминал текст
М-функции с указанием номеров строк; для вывода
части текста следует указать диапазон номеров
выводимых строк; для вывода одной строки
достаточно указать ее номер.
Сопутствующие команды: DBCLEAR, DBCONT, DBDOWN, DBQUIT,
DBSTACK, DBSTATUS, DBSTEP, DBSTOP, DBUP, PARTIALPATH.
Синтаксис:
dbquit
Описание:
Команда dbquit немедленно прекращает режим
отладки и возвращает управление базисному
модулю. Исполнение текущего М-файла прерывается,
результаты не возвращаются. Все контрольные
точки сохраняются. Если основной модуль является
М-сценарием, то его выполнение также прерывается,
появляется сообщение об ошибке и управление
передается в среду системы MATLAB.
Пример:
Выход из режима отладки в случае, когда внешний
модуль mslsnae2.m является M-сценарием (Script-файлом):
K” dbstack
In d:\toolbox\snae\pencil.m at line
20
In d:\toolbox\snae\msnae2.m at line
34
K” dbquit
Error in ==> d:\toolbox\snae2\mslsnae2.m
On line 70 ==> [x, y, err] =
msnae2(Axy, P, sx, sy, nv)
”
Сопутствующие команды: DBCLEAR, DBCONT, DBDOWN, DBSTACK,
DBSTATUS, DBSTEP, DBSTOP, DBTYPE, DBUP.
|
Измерить и вывести
на экран профиль исполняемого М-файла |
Синтаксис: profile имя М-функции profile report _ | n |
frac profile plot profile on | off | reset | done info = profile
Описание:
Утилита профилировщика помогает отладить и
оптимизировать М-функции, фиксируя время
выполнения каждой строки программы. Утилита
создает вектор измерений для каждой строки
программы в профилируемом М-файле. При
выполнении программы профилировщик обновляет
вектор измерений с учетом времени,
затрачиваемого на выполнение соответствующей
строки. Команда profile имя М-функции стартует
профилировщик для заданной функции, имя которой
должно быть именем М-файла, возможно, с указанием
частичного пути доступа. Команда profile report _ | n | frac
выводит на экран либо полный отчет о профиле
М-файла (в отсутствии каких-либо опций), либо
только об n строках с наибольшим временем
исполнения, либо о тех строках, доля затраченного
времени для которых от общего времени выполнения
превышает значение frac из диапазона от 0 до 1.
Команда profile plot выводит на экран результаты
профилирования в виде диаграммы Парето. Команды
profile on ? profile off запускают или приостанавливают
процесс профилирования, соответственно; команда
profile reset очищает вектора измерений, не отключая
профилровщика; команда profile done завершает работу
профилировщика и удаляет сопутствующие данные;
Оператор info = profile возвращает результаты
профилирования в виде структуры со следующими
полями: file Полный путь доступа к профилируемой
функции. function Имя профилируемой функции. interval
Интервал измерения, измеренный в секундах. count
Вектор измерений. state Состояние профилировщика: on
- активен; off - не активен. Профилировщик
отслеживает количество интервалов, затраченных
на выполнение встроенной функции. Поведение
профилировщика зависит от свойств корневого
объекта и может управляться с помощью команд set и
get. Одновременно профилировщик может
обрабатывать только один М-файл. Сопутствующие
команды: DEBUG, PROFSUMM.
|