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

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

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

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

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

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

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

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

  1. На вкладке Home, в разделе 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, type
dbstop if caught error MATLAB:ls:InputsMustBeStrings

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

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

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

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

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

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

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

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

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

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

Отключение точек по оси Х

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

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

Система координат X отображается через значок точки по оси Х, чтобы указать, что он отключен.

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

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

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

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

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

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

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

 dbclear in myprogram at 6

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

dbclear all in myprogram

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

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

Похожие темы