exponenta event banner

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

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

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

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

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

  • Ошибочные точки останова

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

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

  1. На вкладке Главная (Home) в разделе Среда (Environment) щелкните Настройки (Preferences).

    Откроется диалоговое окно Настройки (Preferences).

  2. Выберите MATLAB > Редактор/отладчик.

  3. Снимите флажок Автоматически открывать файл при достижении MATLAB точки останова и нажмите кнопку ОК.

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

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

Чтобы задать стандартную точку останова, щелкните по аллее точки останова в исполняемой строке, в которой требуется задать точку останова. Аллея точки останова представляет собой узкий столбец в левой части окна «Редактор» справа от номера строки. Для установки точки останова можно также использовать клавишу F12.

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

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

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

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

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

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

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

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

Когда откроется диалоговое окно Редактор (Editor), введите условие и нажмите кнопку ОК. Условием является любое допустимое выражение 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 переходит в режим отладки и открывает файл, содержащий ошибку, со стрелкой выполнения в строке, содержащей ошибку.

Чтобы задать точку останова ошибки, на вкладке Редактор нажмите кнопку Выполнить и выберите один из следующих параметров:

  • Приостановка ошибок для приостановки всех ошибок.

  • Приостановка предупреждений для приостановки всех предупреждений.

  • Приостановка на NaN или Inf для приостановки NaN (не-a-число) или 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.

Недопустимые точки останова

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

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

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

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

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

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

Чтобы отключить точку останова, щелкните правой кнопкой мыши значок точки останова и выберите в контекстном меню пункт «Отключить точку останова».

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

Чтобы снова включить точку останова, щелкните правой кнопкой мыши значок точки останова и выберите в контекстном меню пункт «Включить точку останова».

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

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

Очистить точки останова

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

Чтобы очистить точку останова, щелкните правой кнопкой мыши значок точки останова и выберите в контекстном меню пункт «Очистить точку останова». Для очистки точки останова можно также использовать клавишу F12.

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

 dbclear in myprogram at 6

Чтобы очистить все точки останова в файле, щелкните правой кнопкой мыши по аллее точек останова и выберите «Очистить все в файле». Вы также можете использовать dbclear all команда. Например, чтобы очистить все точки останова в файле с именем myprogram.m, тип

dbclear all in myprogram

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

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

Связанные темы