Отладка

В диалоговом окне Configuration Parameters используйте параметры на панели Diagnostics и отладке параметров, чтобы сконфигурировать модель, таким образом, что сгенерированный код и процесс сборки установлены для отладки. Можно установить параметры, которые применяются к образцовой фазе компиляции, фазе генерации кода выходного языка или обоим.

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

К...Выбрать...
Отобразите информацию о прогрессе во время генерации кода в Командном окне MATLAB®

Многословная сборка. Выход компилятора также отображается.

Препятствуйте тому, чтобы процесс сборки удалил файл model.rtw из папки сборки в конце сборки

Сохраните .rtw файл. Этот параметр полезен, если вы изменяете конечные файлы, в этом случае необходимо посмотреть на файл model.rtw.

Дайте профилировщику TLC команду анализировать производительность кода TLC, выполненного во время генерации кода и генерировать отчетПрофилируйте TLC. Отчет находится в формате HTML и может быть считан в вашем веб-браузере.
Запустите отладчик TLC во время генерации кодаЗапустите отладчик TLC при генерации кода. Также введите аргумент -dc для Системного параметра конечного файла на панели Code Generation. Чтобы запустить отладчик и запустить скрипт отладчика, введите -df filename для System target file.
Сгенерируйте отчет, содержащий статистику, указывающую, сколько раз генератор кода читает каждую строку кода TLC во время генерации кодаЗапустите покрытие TLC при генерации кода. Также введите аргумент -dg для параметра System Target File на панели Code Generation.
Остановите сборку, если предоставленный пользователями файл TLC содержит директиву %assert, которая оценивает к FALSE

Включите утверждение TLC. Также можно использовать команды MATLAB, чтобы управлять обработкой утверждения TLC.

Чтобы установить флаг на или прочь, используйте команду set_param. Значение по умолчанию выключено.

set_param(model, 'TLCAssertion', 'on|off') 

Чтобы проверять текущую установку, используйте get_param.

get_param(model, 'TLCAssertion')
Обнаружьте потерю приспособляемости

Обнаружьте потерю приспособляемости (Simulink) на Diagnostics> панель Data Validity. Можно использовать этот параметр, чтобы сообщить о потере приспособляемости, когда выражение уменьшается до числового выражения. Это может произойти, если настраиваемая переменная рабочей области изменяется кодом Инициализации Маски или используется в арифметическом выражении с неподдерживаемыми операторами или функциями. Возможные значения:

  • 'none' Потеря приспособляемости может произойти без уведомления.

  • предупреждение Потеря приспособляемости генерирует предупреждение (значение по умолчанию).

  • ошибка Потеря приспособляемости генерирует ошибку.

Для списка поддерживаемых операторов и функций, смотрите Настраиваемые Ограничения Выражения

Включите образцовую верификацию (утверждение) блоки

Блок Model Verification, разрешающий (Simulink). Используйте этот параметр, чтобы включить или отключить образцовые блоки верификации те, которые Утверждают, Проверка Статический Разрыв и связанные блоки проверки диапазона. Диагностика применяется к сгенерированному коду и поведению симуляции. Например, симуляция и генерация кода игнорируют этот параметр, когда образцовые блоки верификации в S-функции. Возможные значения:

  • User local settings

  • Enable All

  • Disable All

Для блоков Утверждения, не отключенных, сгенерированный код для модели включает один из следующих операторов, в зависимости от типа входного сигнала блоков (булевская переменная, действительная, или целочисленная, соответственно).

utAssert(input_signal);
utAssert(input_signal != 0.0);
utAssert(input_signal != 0);

По умолчанию utAssert не изменяет сгенерированный код. Для утверждений, чтобы прервать выполнение, необходимо включить им путем указывания, что следующая команда make_rtw для Code Generation > Делает параметр команды:

make_rtw OPTS="-DDOASSERTS"

Используйте следующий вариант, если вы хотите, чтобы инициированные утверждения распечатали оператор контроля вместо того, чтобы прервать выполнение:

make_rtw OPTS="-DDOASSERTS -DPRINT_ASSERTS"

utAssert задан как #define utAssert(exp) assert(exp).

Чтобы настроить поведение утверждения, предоставьте свое собственное определение utAssert в рукописном заголовочном файле, который заменяет utAssert.h по умолчанию. Для получения дополнительной информации о том, как включать индивидуально настраиваемый заголовочный файл в сгенерированный код, смотрите, Интегрируют Внешний Код при помощи Образцовых Параметров конфигурации.

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

Для получения дополнительной информации о параметрах отладки TLC, смотрите Отладку на Компиляторе Выходного языка. Кроме того, рассмотрите использование Model Advisor как инструмента для поиска и устранения неисправностей сборок модели.

Похожие темы