Отладчик позволяет, вы, чтобы задать останавливающиеся точки вызвали точки останова в симуляции. Можно затем запустить симуляцию от точки останова до точки останова, с помощью отладчика continue
команда. Отладчик позволяет вам задать два типа точек останова: безусловный и условный. Безусловная точка останова происходит каждый раз, когда симуляция достигает метода, который вы задали ранее. Условная точка останова происходит, когда условие, которое вы задали заранее, возникает в симуляции.
Точки останова полезны, когда вы знаете, что проблема происходит в определенный момент в вашей программе или когда определенное условие происходит. Путем определения соответствующей точки останова и выполнения симуляции через continue
команда, можно сразу пропустить к точке в симуляции, где проблема происходит.
Когда вы останавливаете симуляцию в точке останова S-функции MATLAB® в отладчике, чтобы выйти из MATLAB, необходимо сначала выйти из отладчика.
Можно установить безусловные точки останова от:
Панель инструментов Debugger
Панель Цикла симуляции
Командное окно продукта MATLAB (только режим командной строки)
Включить кнопку Breakpoint,
Симулируйте модель.
Нажмите кнопку Step over current method до simulationPhase
подсвечен.
Нажмите кнопку Step into current method.
Отладчик отображает имя выбранного блока в панели точек Пропуска/Отображения панели Точек останова.
Нажатие кнопки Breakpoint на панели инструментов устанавливает точки останова на вызовах методов блока в главных временных шагах.
Можно временно отключить точки останова на блоке путем снятия флажка в столбце точек останова панели. Очистить точки останова на блоке и удалить его запись из панели,
Выберите запись.
Нажмите кнопку Remove selected point на панели.
Вы не можете установить точку останова на виртуальном блоке. Виртуальный блок является чисто графическим: это указывает на группировку или отношение среди вычислительных блоков модели. Отладчик предупреждает вас, при попытке установить точку останова на виртуальном блоке. Можно получить список невиртуальных блоков модели, с помощью slist
команда (см. Отображение Невиртуальных Блоков Модели).
Чтобы установить точку останова при конкретном вызове метода, отображенного в панели Цикла Симуляции, установите флажок рядом с именем метода в столбце точки останова панели.
Чтобы очистить точку останова, снимите флажок.
В режиме командной строки используйте break
и bafter
команды, чтобы установить точки останова прежде или после заданного метода, соответственно. Используйте clear
команда к ясным точкам останова.
Можно использовать любого, который Пропуск на условиях управляет группой на панели Точек останова отладчика
или следующие команды (в режиме командной строки), чтобы установить условные точки останова.
Эта команда... | Заставляет симуляцию останавливаться... |
---|---|
tbreak [t] | На шаге времени симуляции |
ebreak | В исправимой ошибке в модели |
nanbreak | При вхождении потери значимости или переполнения ( |
xbreak | Когда симуляция достигает состояния, которое определяет размер шага симуляции |
zcbreak | Когда нулевое пересечение находится между шагами времени симуляции |
Чтобы установить точку останова на временном шаге, введите время в Пропуск отладчика в поле времени (режим GUI) или введите время с помощью 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
команда заставляет симуляцию останавливаться, когда непроизведенное нулевое пересечение обнаруживается в модели, которая включает блоки, где нулевые пересечения могут возникнуть. После остановки, ID, типа и имени блока, в котором было обнаружено нулевое пересечение, отображен. Блок ID (s:b:p
) состоит из системного индекса s
, индекс блока b
, и индекс порта p
разделенный двоеточиями (см. ID Блока).
Например, устанавливая пропуск пересечения нулем в начале выполнения 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
команда заставляет симуляцию останавливаться, если решатель обнаруживает исправимую ошибку в модели. Если вы не устанавливаете или отключаете эту точку останова, решатель восстанавливается с ошибки и возобновляет симуляцию, не уведомляя вас.