Отладка блока MATLAB function

Отладка функции в симуляции

В Создают Пользовательскую Функциональность Используя блок MATLAB function, вы создали модель в качестве примера с блоком MATLAB Function, который вычисляет среднее и стандартное отклонение для набора входных значений. Программное обеспечение позволяет отладить для MATLAB Function, когда вы устанавливаете точку останова.

Отлаживать MATLAB Function в этой модели:

  1. Откройте call_stats_block2 модель и дважды кликает блок MATLAB Function stats открыть редактор.

  2. В Редакторе блока MATLAB function кликните по тире (-) в левом поле линии:

    len = length(vals);

    Красная точка появляется в поле линии, указывая на точку останова.

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

    Симуляция делает паузу, когда выполнение достигает точки останова. Это обозначается зеленой стрелой в поле.

  4. На панели инструментов нажмите Step, чтобы усовершенствовать выполнение.

    Стрела выполнения переходит к следующей строке stats, который вызывает локальную функцию avg.

  5. На панели инструментов нажмите Step In.

    Выполнение совершенствуется, чтобы ввести локальную функцию avg. Если вы находитесь в локальной функции, можно использовать Step или команды Step In, чтобы усовершенствовать выполнение. Если локальная функция вызывает другую локальную функцию, используйте Step In, чтобы ввести его. Если вы хотите выполнить остающиеся линии локальной функции, используйте Step Out.

  6. Нажмите Step, чтобы выполнить единственную линию в локальной функции avg. Когда локальная функция avg выполнение концов, зеленая стрела, указывая вниз, появляется под последней линией функции.

  7. Нажмите Step, чтобы возвратиться к функциональному stats.

    Выполнение переходит к линии после вызова локальной функции avg.

  8. Нажмите Step дважды, чтобы вычислить stdev и выполнить plot функция.

    Функция построения графика выполняется в MATLAB®:

    В Редакторе блока MATLAB function зеленая стрелка показывает вниз под последней строкой кода, указывая на завершение функционального stats.

  9. Нажмите Continue, чтобы продолжить выполнение модели.

    Вычисленные значения mean и stdev появитесь в блоках Display.

  10. В Редакторе блока MATLAB function нажмите Quit Debugging, чтобы остановить симуляцию.

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

Чтобы помочь вам отладить код, можно ввести выражение MATLAB как условие на точке останова в Функциональном блоке MATLAB. Симуляция затем делает паузу на той точке останова только, когда условие верно. Чтобы установить условную точку останова, в редакторе блока MATLAB Function, щелкают правой кнопкой около строки кода и выбирают Set Conditional Breakpoint. Введите условие во всплывающем окне. Можно использовать любое допустимое выражение MATLAB в качестве условия. Это выражение условия может включать численные значения и любые данные, которые находятся в осциллографе в точке останова.

Чтобы добавить или изменить условие на существующей точке останова, щелкните правой кнопкой по точке останова и выберите Set/Modify Condition. Можно также выполнить эти действия в меню Breakpoints.

Наблюдение функциональных переменных в процессе моделирования

В то время как вы симулируете блок MATLAB Function, можно использовать несколько инструментов, чтобы отслеживать значения переменных в функции.

Наблюдение с интерактивным отображением

Отобразить значение переменной в функции блока MATLAB Function в процессе моделирования:

  1. В Редакторе блока MATLAB function установите курсор мыши на переменный текст и наблюдайте раскрывающееся отображение.

    Например, чтобы смотреть переменную len в процессе моделирования установите курсор мыши на текст len в коде. Значение len кажется смежным с курсором, как показано:

Наблюдение с отладчиком командной строки

Можно сообщить о значениях для функциональной переменной с утилитой Отладчика Командной строки в окне MATLAB в процессе моделирования. Когда вы достигаете точки останова, подсказки Отладчика Командной строки, debug>>, появляется. В этой подсказке вы видите значение переменной, заданной для блока MATLAB Function путем ввода его имени:

debug>> stdev
 
	1.1180

debug>> 

Отладчик Командной строки также обеспечивает следующие команды в процессе моделирования:

КомандаОписание

ctrl-c

Выйдите из отладки и оконечной симуляции.

dbcont

Продолжите выполнение, чтобы затем установить точки останова.

dbquit

Выйдите из отладки и оконечной симуляции.

dbstep [in|out]

Перейдите к следующему шагу программы после того, как с точкой останова столкнутся. Переступите или продвиньтесь в/из локальную функцию MATLAB.

help

Отобразите справку для отладки командной строки.

print <var>

Отобразите значение переменной var в текущем осциллографе. Если var вектор или матрица, можно также индексировать в var. Например, var(1,2).

save

Сохраняет все переменные в текущем осциллографе к заданному файлу. Следует за синтаксисом save MATLAB команда. Чтобы получить переменные к базовому рабочему пространству MATLAB, используйте load команда после симуляции была закончена.

<var>

Эквивалентный, чтобы "распечатать <var>", если переменная находится в текущем осциллографе.

who

Отобразите переменные в текущем осциллографе.

whos

Отобразите размер и класс (тип) всех переменных в текущем осциллографе.

Можно выпустить любую другую команду MATLAB в debug>> подсказка, но результаты выполняется в рабочей области блока MATLAB Function. Давать команду в базовом рабочем пространстве MATLAB в debug>> подсказка, используйте evalin команда с первым аргументом 'base' сопровождаемый второй командой аргумента, например, evalin('base','whos'). Чтобы возвратиться к базовому рабочему пространству MATLAB, используйте dbquit команда.

Наблюдение с MATLAB

Можно отобразить результат выполнения линии блока MATLAB Function путем исключения завершающей работу точки с запятой. Если вы делаете, результаты выполнения для линии отражены к окну MATLAB в процессе моделирования.

Пределы размера дисплея

Редактор блока MATLAB function не отображает содержимое матриц, которые имеют больше чем две размерности или больше, чем 200 элементы. Для матриц, которые превышают эти пределы, Редактор блока MATLAB function отображает форму и базовый тип только.

Проверка нарушения области значений данных

Блоки MATLAB Function проверяют вводы и выводы на нарушения области значений данных, когда значения ввода или вывода вводят или оставляют блоки. Чтобы включить проверку нарушения области значений данных, установите Simulation range checking в панели Diagnostics: Data Validity диалогового окна Configuration Parameters к error.

Указание диапазона

Чтобы указать диапазон для входных и выходных данных, выполните эти шаги:

  1. В Портах и Менеджере данных, выберите ввод или вывод интереса.

    Диалоговое окно свойств данных открывается.

  2. В диалоговом окне свойств данных выберите вкладку "Общие" и введите предельную область значений, как описано в Setting General Properties.

Средства отладки

Используйте следующие инструменты во время сеанса отладки блока MATLAB Function:

Кнопка инструментовОписаниеСочетание клавиш

Сборка

Доступ к этому инструменту от вкладки Editor путем выбора Build Model> Build.

Проверьте ошибки и создайте приложение симуляции (если никакие ошибки не найдены) для модели, содержащей этот блок MATLAB Function.

Ctrl+B

Обновите схему

Доступ к этому инструменту от вкладки Editor путем выбора Build Model> Update Diagram.

Проверьте ошибки на основе последних изменений, которые вы вносите в блок MATLAB Function.

Ctrl+D

Обновите порты

Доступ к этому инструменту от вкладки Editor путем выбора Build Model> Update Ports.

Обновляет порты блока MATLAB Function с последними изменениями, внесенными в аргумент функции и возвращаемые значения, не закрывая Редактор блока MATLAB function.

Ctrl+Shift+A

Запустите модель

Запустите симуляцию модели, содержащей блок MATLAB Function. Если выполнение приостановлено в точке останова, продолжает отлаживать.

F5

Остановите модель

Остановите симуляцию модели, содержащей блок MATLAB Function. В качестве альтернативы от вкладки Editor, выберите Quit Debugging, если выполнение приостановлено в точке останова.

Shift+F5

Установить/Очистить

Доступ к этому инструменту путем выбора Breakpoints> Set/Clear.

Установите новую точку останова или очистите существующую точку останова для выбранной строки кода в блоке MATLAB Function. Присутствие текстового курсора или выделенного текста выбирает линию. Индикатор точки останова появляется на выбранной линии.

В качестве альтернативы кликните по символу дефиса (-) рядом с номером строки. Индикатор точки останова появляется вместо дефиса. Кликните по индикатору точки останова, чтобы очистить точку останова.

F12

Позволить/Запретить

Доступ к этому инструменту путем выбора Breakpoints> Enable/Disable.

Включите или отключите существующую точку останова для выбранной строки кода в блоке MATLAB Function. Если точка останова отключена, индикатор появляется на выбранной линии.

'none'

Установите условие

Доступ к этому инструменту путем выбора Breakpoints> Set Condition.

Установите условие на точке останова для выбранной строки кода в блоке MATLAB Function. Если точке останова сопоставили условие с ним, индикатор появляется на выбранной линии.

 

Очистите все

Доступ к этому инструменту путем выбора Breakpoints> Clear All.

Очистите все существующие точки останова в блочном коде MATLAB Function.

'none'

Шаг

Продвиньтесь посредством выполнения следующей строки кода в блоке MATLAB Function. Этот инструмент продвигается прошлые вызовы функции и не вводит вызванные функции для линию за линией выполнения. Можно использовать этот инструмент только после того, как выполнение остановилось в точке останова.

F10

Вступить

Продвиньтесь посредством выполнения следующей строки кода в блоке MATLAB Function. Если линия вызывает локальную функцию, шаг в первую линию локальной функции. Можно использовать этот инструмент только после того, как выполнение остановилось в точке останова.

F11

Выйти

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

Shift+F11

Продолжение

Продолжите отлаживать после паузы, такой как остановка в точке останова. Можно использовать этот инструмент только после того, как выполнение остановилось в точке останова.

F5

Выйдите из отладки

Выйдите из режима отладки. Можно использовать этот инструмент только после того, как выполнение остановилось в точке останова.

Shift+F5

Похожие темы