Поиск…


Синтаксис

  • 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, необходимо выполнить два шага:

  1. Запустите MATLAB в режиме отладки JVM.
  2. Присоедините отладчик 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:

Шаг 1. Создание конфигурации отладки

Затем запускается отладчик:

Шаг 2. Запуск отладчика

Если все работает должным образом, в консоли появится следующее сообщение:

Выход журнала, когда все работает



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow