Отладьте код в Live Editor

Чтобы диагностировать проблемы в ваших live скриптах или функциях, отладьте свой код в Live Editor. Существует несколько способов отладить в Live Editor:

  • Вывод Show путем удаления точек с запятой.

  • Запуститесь к определенной строке кода и приостановите использование кнопки.

  • Продвиньтесь в функции и скрипты, в то время как приостановлено при помощи кнопки.

  • Добавьте точки останова в свой файл, чтобы позволить делать паузу в определенных строках, когда вы запуститесь.

Вывод Show

Простой способ определить, где проблема происходит в вашем live скрипте или функции, к выводу show. Чтобы показать вывод для строки, удалите точку с запятой из конца той строки. Live Editor отображает каждый вывод со строкой кода, которая создает его, давая возможность определять, где проблема происходит.

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

Чтобы отобразить вывод функции rand в строке 2, удалите точку с запятой в конце строки. К числам строки дисплея в Live Editor, если они не видимы, перейдите к вкладке View и нажмите кнопку Line Numbers. MATLAB® отображает значение r.

Отладка Используя Run to Here

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

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

Например, нажмите кнопку слева от строки 2 в randomdata.mlx. MATLAB запускает randomdata.mlx, запускающийся в строке 1, и делает паузу перед рабочей строкой 2.

Когда MATLAB делает паузу, кнопка Run в изменениях вкладки Live Editor в кнопке Continue. Live Editor указывает на строку, в которой MATLAB приостановлен путем выделения строки зеленого цвета. Подсвеченная строка не запускается, пока MATLAB не продолжает запускаться.

Совет

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

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

Чтобы продолжить запускать код линию за линией, на вкладке Live Editor, нажимают Step. MATLAB выполняет текущую строку, в которой он приостановлен и паузы в следующей строке.

Просмотрите значение переменных в то время как отладка

Чтобы просмотреть значение переменной, в то время как MATLAB приостановлен, наведите указатель мыши на переменную. Текущее значение переменной появляется во всплывающей подсказке. Всплывающая подсказка остается в поле зрения, пока вы не перемещаете указатель. Чтобы отключить всплывающие подсказки, перейдите к вкладке View и нажмите кнопку Datatips.

Также можно просмотреть значение переменной путем введения имени переменной в Командном окне. Например, чтобы видеть значение переменной n, введите n и нажмите Enter. Командное окно отображает имя переменной и его значение. Чтобы просмотреть все переменные в текущей рабочей области, используйте браузер Рабочей области.

Приостановка рабочего файла

Чтобы приостановить программу, в то время как это запускается, перейдите к вкладке Live Editor и нажмите кнопку Pause. MATLAB делает паузу в следующей исполняемой строке и изменениях кнопки Pause в кнопке Continue. Чтобы продолжить запускаться, нажмите кнопку Continue.

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

Примечание

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

Окончание сеанса отладки

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

Продвиньтесь в функции

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

По умолчанию Live Editor только продвигается в пользовательские функции и скрипты. Чтобы позволить продвинуться в функции MathWorks® также, на вкладке Home, в разделе Environment, нажимают Preferences. Затем выберите MATLAB> Editor/Debugger, и в разделе Debugging in the Live Editor, очистите Only show Step in button for user-defined functions.

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

Исследуйте переменные в рабочей области

Когда вы продвигаетесь в вызванную функцию или файл, Live Editor отображает список функций MATLAB, выполняемый прежде, чем сделать паузу в текущей строке. Список показывают наверху файла и отображает функции по порядку, начиная слева с первого названного скрипта или функции, и заканчиваясь справа текущим скриптом или функцией, в которой приостановлен MATLAB. Этот список называется function call stack.

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

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

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

Добавьте точки останова и выполнение

Если существуют строки кода в вашем файле, который вы хотите приостановить в каждый раз, когда вы запускаете, добавляете точки останова в тех строках. Чтобы добавить точку останова в Live Editor, кликните по серой области налево на исполняемой строке, где вы хотите установить точку останова. Например, кликните по области рядом со строкой 3 в этом коде, чтобы добавить точку останова в той строке. Также можно использовать ключ F12, чтобы установить точку останова.

Когда вы петляете, MATLAB делает паузу в строке кода, обозначенной точкой останова.

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

Когда вы закрываете и вновь открыли файл, точки останова сохранены.

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

Чтобы очистить все точки останова в файле, выберите Clear All in File. Чтобы очистить все точки останова во всех файлах, выберите Clear All.

Точки останова очищаются автоматически, когда вы заканчиваете сеанс работы с MATLAB.

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

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

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

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

Добавьте условные точки останова

Можно добавить условие в точку останова, которая говорит MATLAB, когда сделать паузу в заданной строке. Чтобы добавить условие, щелкните правой кнопкой по точке останова и выберите Set/Modify Condition. Когда диалоговое окно Editor откроется, введите условие и нажмите OK. Условие является любым допустимым выражением MATLAB, которое возвращает логическое скалярное значение. MATLAB оценивает условие прежде, чем запустить строку.

Например, предположите, что вы только хотите сделать паузу в randomdata.mlx, если случайные сгенерированные данные содержат 0.

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

any(r == 0)
Желтая условная точка останова появляется в той строке.

Когда вы петляете, MATLAB делает паузу в заданной строке, когда условие соблюдают. Например, в примере randomdata, MATLAB делает паузу перед рабочей строкой 3, если какое-либо из значений в r равно 0.

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте