Чтобы диагностировать проблемы в ваших live скриптах или функциях, отладьте свой код в Live Editor. Существует несколько способов отладить в Live Editor:
Выход Show путем удаления точек с запятой.
Запуститесь к определенной строке кода и приостановите использование кнопки Run to Here.
Продвиньтесь в функции и скрипты, в то время как приостановлено при помощи кнопки Step In.
Добавьте точки останова в свой файл, чтобы позволить делать паузу в определенных линиях, когда вы запуститесь.
В MATLAB® Online™, отлаживая в Редакторе совпадает с поведением Live Editor. Для получения дополнительной информации об отладке в Редакторе в установленной версии MATLAB, смотрите Отладку программа MATLAB.
Простой способ определить, где проблема происходит в вашем live скрипте или функции, к выходу show. Чтобы показать выход для линии, удалите точку с запятой из конца той линии. Live Editor отображает каждый вывод со строкой кода, которая создает его, давая возможность определять, где проблема происходит.
Например, предположите, что у вас есть скрипт под названием plotRand.mlx
это строит вектор из случайных данных и проводит горизонтальную линию на графике в среднем значении.
Отображать вывод rand
функция в линии 2, удалите точку с запятой в конце линии. К числам строки дисплея в Live Editor, если они не отображаются, перейдите к вкладке View и нажмите
кнопку Line Numbers. MATLAB отображает значение r
.
Выход Showing полезен, если вы хотите отобразить состояние одной переменной. Чтобы исследовать состояние всех переменных в рабочей области, запустите свой live скрипт и затем сделайте паузу прежде, чем запустить заданную строку кода.
Чтобы запуститься к заданной строке кода и затем сделать паузу, кликните по запуску к здесь кнопке слева от линии. Если выбранная линия не может быть достигнута, MATLAB продолжает запускаться, пока конец файла не достигнут, или с точкой останова сталкиваются. Запуск к здесь кнопке доступно только в live функциях при отладке.
Например, нажмите кнопку слева от линии 2 в plotRand.mlx
. MATLAB запускает plotRand.mlx
запуск в линии 1 и делает паузу перед рабочей линией 2.
Когда MATLAB делает паузу, кнопка Run в изменениях вкладки Live Editor в кнопке Continue. Live Editor указывает на линию, в которой MATLAB приостановлен путем выделения линии зеленого цвета. Подсвеченная линия не запускается, пока MATLAB не продолжает запускаться.
Совет
Это - хорошая практика, чтобы не изменять файл, в то время как MATLAB приостановлен. Изменения, которые внесены, в то время как MATLAB приостановлен, не запускаются, пока MATLAB не закончил запускать код, и код повторно выполняется.
Чтобы продолжить запускать код, нажмите кнопку Continue. MATLAB продолжает петлять, пока он не достигает конца файла или точки останова. Также можно нажать кнопку слева от строки кода, к которой вы хотите продолжить запускаться.
Чтобы продолжить запускать код линию за линией, на вкладке Live Editor, нажимают Step. MATLAB выполняет текущую линию, в которой он приостановлен и паузы в следующей строке.
Также можно дойти до линии с курсором путем движения во вкладку Live Editor, выбора Step и затем выбора Run to Cursor.
Чтобы просмотреть значение переменной, в то время как MATLAB приостановлен, наведите указатель мыши на переменную. Текущее значение переменной появляется во всплывающей подсказке. Всплывающая подсказка остается в поле зрения, пока вы не перемещаете указатель. Чтобы отключить всплывающие подсказки, перейдите к вкладке View и нажмите кнопку Datatips.
Также можно просмотреть значение переменной путем введения имени переменной в Командном окне. Например, чтобы видеть значение переменной n
, введите n
и нажмите Enter. Командное окно отображает имя переменной и его значение. Чтобы просмотреть все переменные в текущей рабочей области, используйте браузер Рабочей области.
Чтобы приостановить программу, в то время как это запускается, перейдите к вкладке Live Editor и нажмите кнопку Pause. MATLAB делает паузу в следующей исполняемой линии и изменениях кнопки Pause в кнопке Continue. Чтобы продолжить запускаться, нажмите кнопку Continue.
Приостановка полезна, если вы хотите проверить прогресс длительной программы, чтобы гарантировать, что это запускается как ожидалось.
Примечание
Нажатие на кнопку паузы может заставить MATLAB делать паузу в файле вне вашего собственного программного файла. Нажатие кнопки Continue продолжает запускаться, не изменяя результаты файла.
После того, как вы идентифицируете проблему, заканчиваете сеанс отладки путем движения во вкладку Live Editor и нажатия на Stop. Чтобы избежать беспорядка, убедитесь, что закончили свой сеанс отладки каждый раз, когда вы сделаны, отладив. Live Editor автоматически заканчивает сеанс отладки, когда вы сохраняете.
При отладке можно продвинуться в названные файлы, делающие паузу в точках, где вы хотите исследовать значения. Чтобы продвинуться в файл, нажмите кнопку непосредственно слева от функции, в которую вы хотите продвинуться. Также можно использовать ключ F11, чтобы продвинуться в функцию. 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, выбора Step и затем выбора Step In или Step Out. Эти кнопки не соблюдают настройку Only show Step in button for user-defined functions и всегда вступают и и из пользовательских функций и из функций MathWorks.
Когда вы продвигаетесь в вызванную функцию или файл, 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 выполняет условие прежде, чем запустить линию.
Например, предположите, что вы только хотите сделать паузу в plotRand.mlx
если случайные сгенерированные данные содержат 0
.
Добавьте точку останова со следующим условием в линии 3:
any(r == 0)
Когда вы петляете, MATLAB делает паузу в заданной линии, когда условие соблюдают. Например, в plotRand
пример, MATLAB делает паузу перед рабочей линией 3 если любое из значений в r
равны 0
.
Можно добавить несколько точек останова в линии кода MATLAB, который содержит анонимные функции. Можно установить точку останова для самой линии и для каждой анонимной функции в линии.
Чтобы добавить точку останова, кликните по серой области налево на исполняемой линии, чтобы добавить точку останова для линии. MATLAB добавляет точку останова для линии и отключенную точку останова для каждой анонимной функции в линии. Чтобы включить точку останова для анонимной функции, щелкните правой кнопкой по нему и выберите Enable Breakpoint.
Чтобы просмотреть информацию обо всех точках останова на линии, наведите указатель на значок точки останова. Подсказка появляется с доступной информацией. Например, в этом коде, линия 5 содержит две анонимных функции с точкой останова в каждом.
Когда вы устанавливаете точку останова в анонимной функции, MATLAB делает паузу, когда анонимная функция вызвана. Линия, подсвеченная в зеленом, - то, где код задает анонимную функцию. Линия, подсвеченная в сером, - то, где код вызывает анонимные функции. Например, в этом коде, MATLAB приостанавливает программу в наборе точки останова для анонимной функции g
, заданный в линии 5, и зашел в линию 6.