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

О точках останова

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

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

Примечание

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

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

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

  • Панель инструментов Debugger

  • Панель Цикла моделирования

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

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

Включить кнопку Breakpoint,

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

  2. Нажмите Step по кнопке существующего метода, пока simulationPhase не будет подсвечен.

  3. Нажмите Step в кнопку существующего метода.

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

Примечание

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

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

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

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

Примечание

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

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

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

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

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

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

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

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

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

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

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

ebreak

В исправимой ошибке в модели

nanbreak

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

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): >> 

Если модель не включает блоки, способные к созданию невыбранных нулевых пересечений, команда распечатывает сообщение, сообщая вам об этом факте.

Повреждение при ошибках решателя

Выбор Ошибочной опции Решателя отладчика или ввод команды ebreak заставляют моделирование останавливаться, если решатель обнаруживает исправимую ошибку в модели. Если вы не устанавливаете или отключаете эту точку останова, решатель восстанавливается с ошибки и возобновляет моделирование, не уведомляя вас.

Связанные примеры

Больше о

Была ли эта тема полезной?