Отладка блока 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 Function. Симуляция затем останавливается на этой точке останова, только когда условие верно. Чтобы задать условную точку останова, в редакторе MATLAB Function блоков щелкните правой кнопкой мыши рядом с строкой кода и выберите Set Conditional Breakpoint. Введите условие во всплывающее окно. В качестве условия можно использовать любое допустимое выражение MATLAB. Это выражение условия может включать числовые значения и любые данные, которые находятся в возможности в точке останова.

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

Просмотр переменных функции во время симуляции

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

Просмотр с интерактивным отображением

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

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

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

Просмотр с помощью отладчика командной строки

Вы можете сообщить значения для переменной функции с помощью утилиты Командная Строка Debugger в окне 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

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

<var>

Эквивалентно «print < var >», если переменная находится в текущих возможностях.

who

Отображение переменных в текущих возможностях.

whos

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

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

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

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

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

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

Определение области значений

Чтобы задать область значений для входных и выходных данных, выполните следующие шаги:

  1. В Диспетчере портов и данных выберите вход или выход интереса.

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

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

Инструменты отладки

Используйте следующие инструменты во время сеанса отладки 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 + сдвиг + A

Запуск модели

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

F5

Стоп- Модель

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

Сдвиг + F5

Установка/удаление

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

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

Также щелкните символ дефиса (-) рядом с номером линии. Вместо дефиса появляется индикатор точки останова. Щелкните индикатор точек по оси Х, чтобы удалить точку Х.

F12

Включить/отключить

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

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

Ничего

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

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

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

 

Очистить все

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

Очистить все существующие точки по оси Х в MATLAB Function коде блока.

Ничего

Шаг

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

F10

Шаг внутрь

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

F11

Выход

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

Сдвиг + F11

Продолжить

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

F5

Выход из отладки

Выход из режима отладки. Использовать этот инструмент можно только после остановки выполнения в точке останова.

Сдвиг + F5

Похожие темы