Установка точек останова

Сведения о точках останова

Отладчик позволяет вам задать остановочные точки, называемые точками останова, в симуляции. Затем можно запустить симуляцию от точки по оси Х до точки Х, используя отладчик continue команда. Отладчик позволяет задать два типа точек останова: безусловный и условный. Безусловная точка останова возникает всякий раз, когда симуляция достигает метода, заданного ранее. Условная точка останова возникает, когда условие, заданное в усовершенствование, возникает в симуляции.

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

Примечание

Когда вы останавливаете симуляцию в точке останова MATLAB® S-функция в отладчике, для выхода из MATLAB необходимо сначала выйти из отладчика.

Установка безусловных точек по оси Х

Можно задать безусловные точки прерывания из:

  • Панель инструментов отладчика

  • Панель цикла симуляции

  • Командное окно продукта MATLAB (только в командной строке)

Установка точек по оси Х с панели инструментов отладчика

Чтобы включить кнопку Breakpoint,

  1. Симулируйте модель.

  2. Нажимайте кнопку Step over current method пока simulationPhase подсвечивается.

  3. Нажмите кнопку Step into current method.

Отладчик отображает имя выбранного блока на панели «Разрыв/отображение точек» панели «Точки останова».

Примечание

Нажатие кнопки Breakpoint на панели инструментов устанавливает точки останова на вызовах методов блока в основные временные шаги.

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

  1. Выберите запись.

  2. Нажмите кнопку Remove selected point на панели.

Примечание

Вы не можете задать точку останова для виртуального блока. Виртуальный блок является чисто графическим: он указывает на группировку или отношение между вычислительными блоками модели. Отладчик предупреждает вас, если вы пытаетесь задать точку останова на виртуальном блоке. Вы можете получить список невиртуальных блоков модели, используя slist команда (см. «Отображение невиртуальных блоков модели»).

Установка точек по оси Х из панели цикла симуляции

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

Чтобы снять точку останова, снимите флажок.

Установка точек по оси Х из Командного окна

В режиме командной строки используйте break и bafter команды для установки точек останова до или после заданного метода, соответственно. Используйте clear команда для ясных точек останова.

Установка условных точек останова

Можно использовать группу Пропуска on условий на панели отладчика Breakpoints

или следующие команды (в режиме командной строки) для установки условных точек останова.

Эта команда...Заставляет симуляцию останавливаться...
tbreak [t]

Во временном шаге симуляции

ebreak

При восстанавливаемой ошибке в модели

nanbreak

При вхождении нижнего потока или переполнения (NaN) или бесконечный (Inf) значение

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 команда заставляет симуляцию остановиться, если решатель обнаруживает восстанавливаемую ошибку в модели. Если вы не устанавливаете или не отключаете эту точку останова, решатель восстанавливается от ошибки и продолжает симуляцию, не уведомляя вас.

Похожие примеры

Подробнее о