MATLAB Language
отладка
Поиск…
Синтаксис
- dbstop в файле в месте, если выражение
параметры
параметр | подробности |
---|---|
файл | Имя файла .m (без расширения), например, fit . Этот параметр является (обязательно), если не dbstop if error специальные условные типы точек останова, такие как dbstop if error или dbstop if naninf . |
место нахождения | Номер строки, где должна быть установлена точка останова. Если указанная строка не содержит исполняемый код, точка останова будет помещена в первую допустимую строку после указанной. |
выражение | Любое выражение или комбинация, которая вычисляется по логическому значению. Примеры: ind == 1 , nargin < 4 && isdir('Q:\') . |
Работа с точками прерывания
Определение
При разработке программного обеспечения точка останова является преднамеренной остановкой или приостановкой в программе, созданной для целей отладки.
В более общем плане точка останова является средством получения знаний о программе во время ее выполнения. Во время перерыва программист проверяет тестовую среду (регистры общего назначения, память, журналы, файлы и т. Д.), Чтобы выяснить, работает ли программа, как ожидалось. На практике точка останова состоит из одного или нескольких условий, которые определяют, когда выполнение программы должно быть прервано.
-Wikipedia
Точки останова в MATLAB
мотивация
В MATLAB, когда выполнение приостанавливается в точке останова, переменные, существующие в текущей рабочей области (aka scope ) или любое из рабочих областей вызова, могут быть проверены (и обычно также изменены).
Типы точек останова
MATLAB позволяет пользователям размещать два типа точек останова в файлах .m
:
- Стандартные (или « неограниченные ») точки останова (показаны красным цветом) - приостанавливать выполнение всякий раз, когда отмеченная линия достигнута.
- «Условные» точки останова (показаны желтым цветом) - приостанавливать выполнение всякий раз, когда отмеченная линия достигнута, и условие, определенное в точке останова, оценивается как
true
.
Размещение точек останова
Оба типа точек останова могут быть созданы несколькими способами:
Используя графический интерфейс редактора MATLAB, щелкните правой кнопкой мыши по горизонтальной линии рядом с номером строки.
Используя команду
dbstop
:% Create an unrestricted breakpoint: dbstop in file at location % Create a conditional breakpoint: dbstop in file at location if expression % Examples and special cases: dbstop in fit at 99 % Standard unrestricted breakpoint. dbstop in fit at 99 if nargin==3 % Standard conditional breakpoint. dbstop if error % This special type of breakpoint is not limited to a specific file, and % will trigger *whenever* an error is encountered in "debuggable" code. dbstop in file % This will create an unrestricted breakpoint on the first executable line % of "file". dbstop if naninf % This special breakpoint will trigger whenever a computation result % contains either a NaN (indicates a division by 0) or an Inf
Использование сочетаний клавиш: ключ по умолчанию для создания стандартной точки останова в Windows - F12 ; ключ по умолчанию для условных точек останова не установлен .
Отключение и повторное включение точек останова
Отключите точку останова, чтобы временно ее игнорировать: отключенные точки останова не приостанавливают выполнение. Отключение точки останова может быть выполнено несколькими способами:
- Щелкните правой кнопкой мыши по красному / желтому кругу точек останова> Отключить точку останова.
- Щелкните левой кнопкой мыши на условной (желтой) точке останова.
- На вкладке «Редактор»> «Точки останова»> «Включить \ Отключить».
Удаление точек останова
Все точки останова остаются в файле до удаления, либо вручную, либо автоматически. Точки останова автоматически очищаются при завершении сеанса MATLAB (т.е. завершение программы). Очистка контрольных точек вручную выполняется одним из следующих способов:
Использование команды
dbclear
:dbclear all dbclear in file dbclear in file at location dbclear if condition
Щелкните левой кнопкой мыши значок стандартной точки останова или значок условного прерывания.
Щелкните правой кнопкой мыши по любой точке останова> Clear Breakpoint.
На вкладке «Редактор»> «Точки останова»> «Очистить все».
В версиях MATLAB до R2015b, используя команду
clear
.
Возобновление исполнения
Когда выполнение приостановлено в точке останова, есть два способа продолжить выполнение программы:
Выполните текущую строку и повторите паузу перед следующей строкой.
F10 1 в редакторе,
dbstep
в окне команд, «Шаг» в ленте> Редактор> DEBUG.Выполните до следующей точки останова (если больше не осталось контрольных точек, выполнение продолжается до конца программы).
F12 1 в редакторе,
dbcont
в окне команд, «Продолжить» в ленте> Редактор> DEBUG.
1 - по умолчанию в Windows.
Отладка Java-кода, вызванного MATLAB
обзор
Чтобы отлаживать классы Java, вызываемые во время выполнения MATLAB, необходимо выполнить два шага:
- Запустите MATLAB в режиме отладки JVM.
- Присоедините отладчик Java к процессу MATLAB.
Когда MATLAB запускается в режиме отладки JVM, в окне команд появляется следующее сообщение:
JVM is being started with debugging enabled.
Use "jdb -connect com.sun.jdi.SocketAttach:port=4444" to attach debugger.
Конец MATLAB
Окна:
Создайте ярлык для исполняемого файла MATLAB ( matlab.exe
) и добавьте флаг -jdb
в конец, как показано ниже:
При запуске MATLAB с использованием этого ярлыка будет включена отладка JVM.
Кроме того, файл java.opts
может быть создан / обновлен. Этот файл хранится в «matlab-root \ bin \ arch», где «matlab-root» - это директива установки MATLAB, а «arch» - это архитектура (например, «win32»).
В файл необходимо добавить следующее:
-Xdebug
-Xrunjdwp:transport=dt_socket,address=1044,server=y,suspend=n
Окончание отладчика
IntelliJ IDEA
Прикрепление этого отладчика требует создания конфигурации «удаленной отладки» с портом, открытым MATLAB:
Затем запускается отладчик:
Если все работает должным образом, в консоли появится следующее сообщение: