Отладка блока 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.

    Функция 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 кажется смежным с курсором, как показано:

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

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

debug>> stdev
 
	1.1180

debug>> 

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

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

ctrl-c

Выйдите из отладки и отключите моделирование.

dbcont

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

dbquit

Выйдите из отладки и отключите моделирование.

dbstep [in|out]

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

справка

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

print <var>

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

сохранение

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

<var>

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

кто

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

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 проверяют, что вводы и выводы для данных располагаются нарушения, когда значения ввода или вывода вводят или оставляют блоки. Чтобы включить данные располагаются проверка нарушения, устанавливают проверку диапазона Моделирования в Диагностике: панель Законности Данных диалогового окна 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

Похожие темы

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