Чтобы отладить вашу программу MATLAB® графически, используйте Редактор/Отладчик. Также можно использовать функции отладки в Командном окне. Оба метода являются взаимозаменяемыми.
Прежде чем вы начнете отлаживать, убедитесь, что ваша программа сохраняется и что программа и любые файлы, которые это вызывает, существуют на вашем пути поиска файлов или в текущей папке.
Если вы петляете с несохраненными изменениями из Редактора, то файл автоматически сохранен, прежде чем это запустится.
Если вы петляете с несохраненными изменениями из Командного окна, то программное обеспечение MATLAB запускает сохраненную версию файла. Поэтому вы не видите результаты своих изменений.
Установите точки останова приостанавливать выполнение файла MATLAB, таким образом, можно исследовать значение или переменные, где вы думаете, что проблема могла быть. Можно установить точки останова с помощью Редактора, с помощью функций в Командном окне или обоих.
Существует три различных типов точек останова: стандарт, условное выражение и ошибка. Чтобы добавить стандартную точку останова в Редакторе, кликните по области точки останова в исполняемой строке, где вы хотите установить точку останова. Область точки останова является узким столбцом на левой стороне Редактора, справа от номера строки. Исполняемые строки обозначаются тире (—) в области точки останова. Например, кликните по области точки останова затем, чтобы выровнять 2 в коде ниже, чтобы добавить точку останова в той строке.
Если исполняемый оператор охватывает несколько строк, можно установить точку останова в каждой строке в том операторе, даже при том, что дополнительные строки не имеют — (тире) в области точки останова. Например, в этом коде. можно установить точку останова во всех четырех строках:
Для получения дополнительной информации о различных типах точек останова смотрите Установку точек останова.
После установки точек останова петляйте из Командного окна или Редактора. Петляние приводит к этим результатам:
Кнопка Run изменяется на кнопку Pause.
Подсказка в Командном окне изменяется на K>>
, указывающий, что MATLAB находится в режиме отладки и что клавиатура сознает ситуацию.
MATLAB делает паузу в первой точке останова в программе. В Редакторе зеленая стрелка только справа от точки останова указывает на паузу. Программа не выполняет строку, где пауза происходит, пока это не продолжает запускаться. Например, здесь отладчик делает паузу, прежде чем программа выполняет x = ones(1,10);
.
MATLAB отображает текущую рабочую область в Стеке вызовов функции на вкладке Editor в разделе Debug.
При использовании функции отладки от Командного окна, используйте dbstack
, чтобы просмотреть Стек вызовов функции.
Для получения дополнительной информации об использовании Стека вызовов функции смотрите, Выбирают Workspace
Чтобы приостановить выполнение программы, в то время как это запускается, перейдите к вкладке Editor и нажмите кнопку Pause. MATLAB приостанавливает выполнение в следующей исполняемой строке и изменения кнопки Pause в кнопке Continue. Чтобы продолжить выполнение, нажмите кнопку Continue.
Приостановка полезна, если вы хотите проверить прогресс длительной программы, чтобы гарантировать, что это запускается как ожидалось.
Нажатие на кнопку паузы может заставить MATLAB, делают паузу в файле вне вашего собственного программного файла. Нажатие кнопки Continue возобновляет нормальное выполнение, не изменяя результаты файла.
В то время как ваш код приостановлен, можно просмотреть или изменить значения переменных, или можно изменить код.
Просмотрите значение переменной при отладке, чтобы видеть, произвела ли строка кода ожидаемый результат или нет. Для этого расположите свой указатель мыши слева от переменной. Текущая стоимость переменной появляется в совете данных.
Совет данных остается в поле зрения, пока вы не перемещаете указатель. Если вы испытываете затруднения, заставляя совет данных появиться, кликните по строке, содержащей переменную, и затем переместите указатель рядом с переменной. Для получения дополнительной информации смотрите, Исследуют Значения В то время как Отладка.
Можно изменить значение переменной при отладке, чтобы видеть, производит ли новое значение ожидаемые результаты. С приостановленной программой присвойте новое значение переменной в Командном окне, браузере Рабочей области или Редакторе Переменных. Затем продолжите запускаться или продвигаться через программу.
Например, здесь MATLAB приостановлен в цикле for
где n = 2
:
Введите n = 7;
в командной строке, чтобы изменить текущую стоимость n
от 2 до 7.
Нажмите Continue, чтобы запустить следующую строку кода.
MATLAB запускает строку кода x(n) = 2 * x(n-1);
с n = 7
.
Можно изменить раздел кода при отладке, чтобы протестировать возможные меры, не имея необходимость сохранять изменения. Обычно, это - хорошая практика, чтобы изменить файл MATLAB после того, как вы будете выходить из отладки, и затем будете сохранять модификацию и будете петлять. В противном случае вы можете получить неожиданные результаты. Однако существуют ситуации, где вы хотите экспериментировать во время отладки.
Изменить программу при отладке:
В то время как ваш код приостановлен, измените часть файла, который еще не запустился.
Точки останова стали серыми, указывая, что они недопустимы.
Выберите весь код после строки, в которой приостановлен MATLAB, щелкните правой кнопкой, и затем выберите Evaluate Selection из контекстного меню.
После того, как оценка кода завершена, прекратите отлаживать и сохраните или отмените любые изменения, внесенные прежде, чем продолжить процесс отладки.
При отладке можно продвинуться через файл MATLAB, делающий паузу в точках, где вы хотите исследовать значения.
Эта таблица описывает доступные действия отладки и различные методы, которые можно использовать, чтобы выполнить их.
Описание | Кнопка на панели инструментов | Функциональная альтернатива |
---|---|---|
Продолжите выполнение файла до строки, где курсор расположен. Также доступный в контекстном меню. | Запуститесь к курсору | 'none' |
Выполните текущую строку файла. | Шаг | |
Выполните текущую строку файла и, если строка является вызовом другой функции, шага в эту функцию. | Вступить |
|
Возобновите выполнение файла до завершения или пока с другой точкой останова не столкнутся. | Продолжение | |
После вступания, остальная часть выполнения вызванной функциональной или локальной функции, оставляют вызванную функцию и делают паузу. | Выйти |
|
Приостановите режим отладки. | Приостановка | 'none' |
Выйдите из режима отладки. |
Выйдите из отладки | dbquit |
После того, как вы идентифицируете проблему, заканчиваете сеанс отладки путем движения во вкладку Editor и нажатия на Quit Debugging . Необходимо закончить сеанс отладки, если вы хотите изменить и сохранить файл, или если вы хотите запустить другие программы в MATLAB.
После того, как вы выходите из отладки, делаете паузу, индикаторы в отображении Редактора больше не появляются, и нормальная подсказка >>
вновь появляется в Командном окне вместо K>>
. Вы больше не можете получать доступ к стеку вызовов.
Если программное обеспечение MATLAB становится небыстро реагирующим, когда оно делает паузу в точке останова, нажмите Ctrl+c, чтобы возвратиться к посдказке MATLAB.