Установка точек останова

Установка точек останова приостанавливает осуществление вашей программы MATLAB® так, чтобы можно было исследовать значения, где вы думаете, что проблема может быть. Можно установить точки останова с помощью Редактора или при помощи функций в Командном окне.

Существует три типа точек останова:

  • Стандартные точки останова

  • Условные точки останова

  • Точки останова по ошибке

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

По умолчанию MATLAB автоматически открывает файлы, когда он достигает точки останова. Отключить эту опцию:

  1. На вкладке «Главная страница», в разделе Environment, нажмите Preferences.

    Диалоговое окно Preferences открывается.

  2. Выберите MATLAB> Editor/Debugger.

  3. Очистите опцию Automatically open file when MATLAB reaches a breakpoint и нажмите OK.

Стандартные точки останова

Стандартная точка останова делает паузу в заданной линии в файле.

Чтобы установить стандартную точку останова кликают по области точки останова в исполняемой линии, где вы хотите установить точку останова. breakpoint alley является узким столбцом на левой стороне Редактора, справа от номера строки. Также можно использовать ключ F12, чтобы установить точку останова.

Исполняемые линии обозначаются — (тире) в области точки останова. Если исполняемый оператор охватывает несколько линий, можно установить точку останова в каждой линии в том операторе, даже при том, что дополнительные линии не имеют — (тире) в области точки останова. Например, в этом коде, можно установить точку останова во всех четырех линиях:

При попытке установить точку останова в линии, которая не является исполняемым файлом, таким как комментарий или пустая строка, MATLAB устанавливает его в следующей исполняемой линии.

Чтобы установить стандартную точку останова программно, используйте dbstop функция. Например, чтобы добавить точку останова в линии 2 в файле с именем myprogram.mВвод:

dbstop in myprogram at 2
MATLAB добавляет точку останова в линии 2 в функциональном myprogram.

Исследовать значения в шаге в for цикл, набор точка останова в цикле, а не в начале цикла. Если вы устанавливаете точку останова в начале цикла for, и затем продвигаетесь через файл, MATLAB делает паузу в for оператор только однажды. Однако, если вы помещаете точку останова в цикле, MATLAB делает паузу в каждом, проходят через цикл.

Условные точки останова

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

Чтобы установить условную точку останова, щелкните правой кнопкой по области точки останова по исполняемой линии, где вы хотите установить точку останова и выбрать Set/Modify Condition.

Когда диалоговое окно Editor откроется, введите условие и нажмите OK. Условием является любое допустимое выражение MATLAB, которое возвращает логическое скалярное значение.

Как отмечено в диалоговом окне, MATLAB оценивает условие прежде, чем запустить линию. Например, предположите, что у вас есть файл под названием myprogram.m.

Добавьте точку останова со следующим условием в линии 6:

n >= 4
Желтый значок условной точки останова появляется в области точки останова в той линии.

Также можно установить условную точку останова программно с помощью dbstop функция. Например, чтобы добавить условную точку останова в myprogram.m в линии 6 типов:

dbstop in myprogram at 6 if n>=4

Когда вы петляете, MATLAB вводит режим отладки и делает паузу в линии, когда условие соблюдают. В myprogram пример, MATLAB пробегает for циклично выполнитесь дважды, и делает паузу на третьей итерации в линии 6 когда n 4. Если вы продолжаете выполняться, MATLAB делает паузу снова в линии 6 на четвертой итерации когда n 5.

Точки останова по ошибке

Точка останова по ошибке заставляет MATLAB приостанавливать выполнение программы и вводить режим отладки, если MATLAB сталкивается с проблемой. В отличие от стандартных и условных точек останова, вы не устанавливаете эти точки останова в определенной линии в определенном файле. Когда вы устанавливаете точку останова по ошибке, MATLAB делает паузу в любой линии в любом файле, если заданное состояние ошибки происходит. MATLAB затем вводит режим отладки и открывает файл, содержащий ошибку стрелкой выполнения в линии, содержащей ошибку.

Чтобы установить точку останова по ошибке, на вкладке Editor, нажимают Run и выбор из этих опций:

  • Pause on Errors, чтобы сделать паузу при всех ошибках.

  • Pause on Warnings, чтобы сделать паузу на всех предупреждениях.

  • Pause on NaN or Inf , чтобы сделать паузу на NaN (не число) или Inf (бесконечные) значения.

Также можно установить точку останова программно при помощи dbstop функция с заданным condition. Например, чтобы приостановить выполнение при всех ошибках, ввести

dbstop if error
Приостановить выполнение в первой ошибке времени выполнения в try фрагмент try/catch блокируйтесь, который имеет идентификатор сообщения MATLAB:ls:InputsMustBeStringsВвод
dbstop if caught error MATLAB:ls:InputsMustBeStrings

Точки останова в анонимных функциях

Можно установить несколько точек останова в линии кода MATLAB, который содержит анонимные функции. Например, можно установить точку останова для самой линии, где программное обеспечение MATLAB делает паузу в начале линии. Или, альтернативно, можно установить точку останова для каждой анонимной функции в линии.

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

Чтобы просмотреть информацию обо всех точках останова на линии, наведите указатель на значок точки останова. Подсказка появляется с доступной информацией. Например, в этом коде, линия 5 содержит две анонимных функции с точкой останова в каждом. Подсказка говорит нам, что обе точки останова включены.

Когда вы устанавливаете точку останова в анонимной функции, MATLAB делает паузу, когда анонимная функция вызвана. Зеленая стрелка показывает, где код задает анонимную функцию. Белая стрелка показывает, где код вызывает анонимные функции. Например, в этом коде, MATLAB приостанавливает программу в наборе точки останова для анонимной функции sqr, в линии 2 в файле под названием myanonymous.m. Белая стрелка указывает что sqr функция вызвана от линии 3.

Некорректные точки останова

Серая точка останова указывает на некорректную точку останова.

Точки останова недопустимы по этим причинам:

  • В файле существуют несохраненные изменения. Чтобы сделать точки останова допустимыми, сохраните файл. Серые точки останова становятся красными, указывая, что они теперь допустимы.

  • В файле существует синтаксическая ошибка. Когда вы устанавливаете точку останова, сообщение об ошибке кажется указывающим, где синтаксическая ошибка. Чтобы сделать точку останова допустимой, зафиксируйте синтаксическую ошибку и сохраните файл.

Отключение точки останова

Можно отключить выбранные точки останова так, чтобы программа временно проигнорировала их и непрерывные запуски. Например, вы можете отключить точку останова после того, как вы думаете, что идентифицировали и откорректировали проблему, или если вы используете условные точки останова.

Чтобы отключить точку останова, щелкните правой кнопкой по значку точки останова и выберите Disable Breakpoint из контекстного меню.

X кажется, через значок точки останова указывает, что он отключен.

Чтобы повторно включить точку останова, щелкните правой кнопкой по значку точки останова и выберите Enable Breakpoint из контекстного меню.

X больше не появляется на значке точки останова, и выполнение программы делает паузу в той линии.

Чтобы включить или отключить все точки останова в файле, выберите Enable All in File или Disable All in File. Эти опции только доступны, если существует по крайней мере одна точка останова, чтобы включить или отключить.

Ясные точки останова

Все точки останова остаются в файле, пока вы не очищаетесь (удаляют) их или пока они не очищены автоматически в конце вашего сеанса работы с MATLAB.

Чтобы очистить точку останова, щелкните правой кнопкой по значку точки останова и выберите Clear Breakpoint из контекстного меню. Также можно использовать ключ F12, чтобы очистить точку останова.

Чтобы очистить точку останова программно, используйте dbclear функция. Например, чтобы очистить точку останова в линии 6 в файле под названием myprogram.mВвод

 dbclear in myprogram at 6

Чтобы очистить все точки останова в файле, щелкните правой кнопкой по области точки останова и выберите Clear All in File. Можно также использовать dbclear all команда. Например, чтобы очистить все точки останова в файле под названием myprogram.mВвод

dbclear all in myprogram

Чтобы очистить все точки останова во всех файлах, включая точки останова по ошибке, щелкают правой кнопкой по области точки останова и выбирают Clear All. Также можно использовать dbclear all команда.

Точки останова очищаются автоматически, когда вы заканчиваете сеанс работы с MATLAB. Чтобы сохранить ваши точки останова для будущих сеансов, смотрите dbstatus функция.

Похожие темы