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

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

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

Отлаживать функцию MATLAB в этой модели:

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

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

    len = length(vals);

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Вычисленные значения mean и stdev появляются в блоках Отображения.

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

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

Чтобы помочь вам отладить код, можно ввести выражение MATLAB как условие на точке останова в блоке MATLAB function. Симуляция затем делает паузу на той точке останова только, когда условие верно. Чтобы установить условную точку останова, в редакторе блока 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

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте