Начиная с R2021b. Установка точек останова замен (R2021a) и код отладки в Live Editor (R2021a).
Установка точек останова приостанавливает выполнение вашего MATLAB® программа так, чтобы можно было исследовать значения, где вы думаете проблема, может произойти. Можно установить точки останова в интерактивном режиме в Редакторе или Live Editor, или при помощи функций в Командном окне.
Существует три типа точек останова:
Стандарт
Условное выражение
Ошибка
Можно установить точки останова только в исполняемых линиях в сохраненных файлах, которые находятся в текущей папке или в папках на пути поиска файлов. Можно установить точки останова в любое время, является ли MATLAB неактивным или занятым выполнением файла.
По умолчанию, когда MATLAB достигает точки останова, он открывает файл, содержащий точку останова. Отключить эту опцию:
На вкладке «Главная страница», в разделе Environment, нажмите Preferences.
В окне Preferences выберите MATLAB> Editor/Debugger.
Очистите опцию Automatically open file when MATLAB reaches a breakpoint и нажмите OK.
Стандартная точка останова делает паузу в определенной линии в файле. Чтобы установить стандартную точку останова, кликните по серой области слева от исполняемой линии, где вы хотите установить точку останова. В качестве альтернативы можно нажать клавишу F12, чтобы установить точку останова в текущей линии. При попытке установить точку останова в линии, которая не является исполняемым файлом, таким как комментарий или пустая строка, MATLAB устанавливает его в следующей исполняемой линии.
Чтобы установить стандартную точку останова программно, используйте dbstop
функция. Например, чтобы добавить точку останова в линии три в файле с именем plotRand.m
Ввод:
dbstop in plotRand at 3
Когда отладка файла, который содержит цикл, установила точку останова в цикле исследовать значения в каждом шаге цикла. В противном случае, если вы устанавливаете точку останова в начале цикла, MATLAB делает паузу в инструкции циклов только однажды. Например, этот код создает массив из десяти единиц и использует a for
цикл, чтобы выполнить вычисление на элементах два - шесть из массива:
x = ones(1:10); for n = 2:6 x(n) = 2 * x(n-1); end
for
цикл (в общей сложности пять раз), устанавливает точку останова в линии четыре.Условная точка останова заставляет MATLAB делать паузу в определенной линии в файле только, когда заданное условие соблюдают. Например, можно использовать условные точки останова, когда это необходимо, чтобы исследовать результаты после некоторых итераций в цикле.
Чтобы установить условную точку останова, щелкните правой кнопкой по серой области слева от исполняемой линии, где вы хотите установить точку останова и выбрать Set Conditional Breakpoint. Если точка останова уже существует на той линии, выберите Set/Modify Condition. В диалоговом окне, которое открывается, введите условие и нажмите OK. Условием является любое допустимое выражение MATLAB, которое возвращает логическое скалярное значение.
Когда вы запускаете код, MATLAB выполняет условие прежде, чем запустить линию. Если условие соблюдают, MATLAB вводит режим отладки и делает паузу в линии. Например, этот код создает массив из десяти единиц и использует a for
цикл, чтобы выполнить вычисление на элементах два - шесть из массива:
x = one(1:10) for n = 2:6 x(n) = 2 * x(n-1); end
Установите условную точку останова в линии четыре с условием n >= 4
. Когда вы запускаете код, MATLAB пробегает for
циклично выполнитесь дважды, и делает паузу на третьей итерации в линии четыре когда n
4
. Если вы продолжаете запускать код, MATLAB делает паузу снова в линии четыре на четвертой итерации когда n
5
, и затем еще раз, когда n
6
.
Также можно установить условную точку останова программно с помощью dbstop
функция. Например, чтобы добавить условную точку останова в myprogram.m
в линии шесть, введите:
dbstop in myprogram at 6 if n>=4
В Редакторе можно установить точку останова по ошибке иметь MATLAB, приостанавливают и вводят режим отладки, если MATLAB сталкивается с проблемой. Установка точек останова по ошибке не поддерживается в Live Editor.
В отличие от стандартных и условных точек останова, вы не устанавливаете точки останова по ошибке в определенной линии или в определенном файле. Когда вы устанавливаете точку останова по ошибке, 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 добавляет точку останова для линии и отключенную точку останова для каждой анонимной функции в линии. Чтобы включить точку останова для анонимной функции, кликните по отключенной точке останова для этой функции.
Чтобы просмотреть информацию обо всех точках останова на линии, установите свой курсор на значок точки останова. Подсказка появляется с доступной информацией. Например, в этом коде, линия семь содержит две анонимных функции с точкой останова в каждом.
Когда вы устанавливаете точку останова в анонимной функции, MATLAB делает паузу, когда анонимная функция вызвана. Линия, подсвеченная в зеленом, - то, где код задает анонимную функцию. Линия, подсвеченная в сером, - то, где код вызывает анонимные функции. Например, в этом коде, MATLAB приостанавливает программу в наборе точки останова для анонимной функции g
, заданный в линии семь, и зашел в линию восемь.
Темно-серая точка останова указывает на некорректную точку останова.
Точки останова недопустимы по этим причинам:
Несохраненные изменения в файле. Чтобы сделать точки останова допустимыми, сохраните файл. Серые точки останова становятся красными, указывая, что они теперь допустимы.
Синтаксическая ошибка в файле. Когда вы устанавливаете точку останова, сообщение об ошибке кажется указывающим, где синтаксическая ошибка. Чтобы сделать точку останова допустимой, зафиксируйте синтаксическую ошибку и сохраните файл.
Можно отключить выбранные точки останова так, чтобы программа временно проигнорировала их и непрерывные запуски. Например, вы можете отключить точку останова после того, как вы думаете, что идентифицировали и откорректировали проблему или если вы используете условные точки останова.
Чтобы отключить точку останова, щелкните правой кнопкой по значку точки останова и выберите Disable Breakpoint из контекстного меню.
Точка останова становится светло-серой, чтобы указать, что она отключена.
Чтобы повторно включить точку останова, щелкните правой кнопкой по значку точки останова и выберите Enable Breakpoint из контекстного меню.
Серые точки останова становятся красными, и выполнение программы делает паузу в той линии.
Чтобы включить или отключить все точки останова в файле, щелкните правой кнопкой по серой области слева от исполняемой линии и выберите Enable All Breakpoints in File или Disable All Breakpoints in File. Эти опции доступны, только если существует по крайней мере одна точка останова, чтобы включить или отключить.
Все точки останова остаются в файле, пока вы не очищаетесь (удаляют) их или пока они не очищены автоматически в конце вашего сеанса работы с MATLAB.
Чтобы очистить точку останова, щелкните правой кнопкой по значку точки останова и выберите Clear Breakpoint из контекстного меню. В качестве альтернативы можно нажать клавишу F12, чтобы очистить точку останова.
Чтобы очистить точку останова программно, используйте dbclear
функция. Например, чтобы очистить точку останова в линии шесть в файле под названием myprogram.m
Ввод:
dbclear in myprogram at 6
Чтобы очистить все точки останова в файле, щелкните правой кнопкой по области точки останова и выберите Clear All Breakpoints in File. Можно также использовать dbclear
all
команда. Например, чтобы очистить все точки останова в файле под названием myprogram.m
Ввод:
dbclear all in myprogram
Чтобы очистить все точки останова во всех файлах, включая точки останова по ошибке, щелкают правой кнопкой по области точки останова и выбирают Clear All Breakpoints. Также можно использовать dbclear all
команда.
Точки останова очищаются автоматически, когда вы заканчиваете сеанс работы с MATLAB. Чтобы сохранить ваши точки останова для будущих сеансов, используйте dbstatus
функция.