Отладчик позволяет вам задать остановочные точки, называемые точками останова, в симуляции. Затем можно запустить симуляцию от точки по оси Х до точки Х, используя отладчик continue
команда. Отладчик позволяет задать два типа точек останова: безусловный и условный. Безусловная точка останова возникает всякий раз, когда симуляция достигает метода, заданного ранее. Условная точка останова возникает, когда условие, заданное в усовершенствование, возникает в симуляции.
Точки останова применяются, когда вы знаете, что проблема возникает в определенной точке вашей программы или когда происходит определенное условие. Путем определения соответствующей точки останова и выполнения симуляции через continue
команду можно пропустить сразу до точки в симуляции, где возникает проблема.
Примечание
Когда вы останавливаете симуляцию в точке останова MATLAB® S-функция в отладчике, для выхода из MATLAB необходимо сначала выйти из отладчика.
Можно задать безусловные точки прерывания из:
Панель инструментов отладчика
Панель цикла симуляции
Командное окно продукта MATLAB (только в командной строке)
Чтобы включить кнопку Breakpoint,
Симулируйте модель.
Нажимайте кнопку Step over current method пока simulationPhase
подсвечивается.
Нажмите кнопку Step into current method.
Отладчик отображает имя выбранного блока на панели «Разрыв/отображение точек» панели «Точки останова».
Примечание
Нажатие кнопки Breakpoint на панели инструментов устанавливает точки останова на вызовах методов блока в основные временные шаги.
Можно временно отключить точки останова на блоке, отменив флажок в столбце точек останова панели. Чтобы удалить точки останова на блоке и удалить его вход с панели,
Выберите запись.
Нажмите кнопку Remove selected point на панели.
Примечание
Вы не можете задать точку останова для виртуального блока. Виртуальный блок является чисто графическим: он указывает на группировку или отношение между вычислительными блоками модели. Отладчик предупреждает вас, если вы пытаетесь задать точку останова на виртуальном блоке. Вы можете получить список невиртуальных блоков модели, используя slist
команда (см. «Отображение невиртуальных блоков модели»).
Чтобы задать точку останова в конкретном вызове метода, отображаемого на панели Цикл Симуляция, установите флажок рядом с именем метода в столбце точек останова на панели.
Чтобы снять точку останова, снимите флажок.
В режиме командной строки используйте break
и bafter
команды для установки точек останова до или после заданного метода, соответственно. Используйте clear
команда для ясных точек останова.
Можно использовать группу Пропуска on условий на панели отладчика Breakpoints
или следующие команды (в режиме командной строки) для установки условных точек останова.
Эта команда... | Заставляет симуляцию останавливаться... |
---|---|
tbreak [t] | Во временном шаге симуляции |
ebreak | При восстанавливаемой ошибке в модели |
nanbreak | При вхождении нижнего потока или переполнения ( |
xbreak | Когда симуляция достигает состояния, которое определяет размер шага симуляции |
zcbreak | Когда происходит пересечение нуля между временными шагами симуляции |
Чтобы задать точку останова в конкретный временной шаг, введите время в поле Break at time (графический интерфейс пользователя) или введите время с помощью tbreak
команда. Это заставляет отладчик останавливать симуляцию в Outputs.Major
способ модели на первом временном шаге, который следует за заданным временем. Для примера, запуска vdp
в режиме отладки и ввода команд
tbreak 2 continue
заставляет отладчик остановить симуляцию в vdp.Outputs.Major
метод временного шага 2.078
как обозначено выходом continue
команда.
%----------------------------------------------------------------% [Tm = 2.034340153847549 ] vdp.Outputs.Minor (sldebug @37):
Выбор опции отладчика значений NaN или ввод nanbreak
команда заставляет симуляцию останавливаться, когда вычисленное значение бесконечно или вне области значений, которая поддерживается машиной, выполняющей симуляцию. Эта опция полезна для определения вычислительных ошибок в модели.
Выбор размера шага, ограниченного состоянием опция или вход в xbreak
команда заставляет отладчик остановить симуляцию, когда модель использует решатель переменного шага, и решатель сталкивается с состоянием, которое ограничивает размер шагов, которые он может предпринять. Эта команда полезна при отладке моделей, которые, по-видимому, требуют чрезмерного количества временных шагов симуляции для решения.
Выбор опции Пересечения нуля или ввод zcbreak
команда заставляет симуляцию остановиться, когда в модели, которая включает блоки, в которых могут возникнуть пересечения нуля, обнаруживается неавторизованное пересечение нуля. После остановки отображаются идентификатор, тип и имя блока, в котором было обнаружено пересечение нуля. Идентификатор блока (s:b:p
) состоит из системного индекса s
, блочный индекс b
, и индекс порта p
разделены двоеточиями (см. «Блок»).
Например, установка пропуска пересечения нулем в начале выполнения zeroxing
пример модели,
>> sldebug zeroxing %-------------------------------------------------------------- % [TM = 0 ] zeroxing.Simulate (sldebug @0): >> zcbreak Break at zero crossing events : enabled
и продолжение симуляции
(sldebug @0): >> continue
приводит к пропуску через пересечение нулем на
Interrupting model execution before running mdlOutputs at the left post of (major time step just before) zero crossing event detected at the following location: 6[-0] 0:5:2 Saturate 'zeroxing/Saturation' %----------------------------------------------------------------% [TzL= 0.3435011087932808 ] zeroxing.Outputs.Major (sldebug @16): >>
Если модель не включает блоки, способные производить несредоточенные пересечения нуля, команда печатает сообщение, информирующее вас об этом факте.
Выбор опции Solver Errors отладчика или ввод ebreak
команда заставляет симуляцию остановиться, если решатель обнаруживает восстанавливаемую ошибку в модели. Если вы не устанавливаете или не отключаете эту точку останова, решатель восстанавливается от ошибки и продолжает симуляцию, не уведомляя вас.