Отладьте сгенерированный код во время SIL симуляции

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

Для отказа SIL симуляции можно также просмотреть информацию от стандартного вывода и потоков стандартной погрешности в Диагностическом Средстве просмотра. Например:

  • Выведите от операторов printf в вашем коде.

  • Сообщения об ошибке отправляются в stderr.

  • Некоторые низкоуровневые системные сообщения.

Во время SIL симуляции приложение SIL перенаправляет потоки stderr и stdout. Когда приложение останавливается, Диагностическое Средство просмотра отображает информацию от перенаправленных потоков. Приложение SIL также обеспечивает обработчик базового сигнала, который получает сигналы POSIX® SIGFPE, SIGILL, SIGABRT и SIGSEV. Для этого обработчика сигнала приложение SIL включает файл signal.h.

SIL симуляция поддерживает эти отладчики;

  • На Windows®, отладчике Microsoft® Visual Studio®.

  • На Linux®, GNU® Data Display Debugger (DDD).

Примечание

Можно выполнить SIL отладка, только если семейство продуктов Simulink® поддерживает Microsoft Visual C ++® или GNU компилятор GCC. Для получения дополнительной информации см. поддерживаемые компиляторы.

Чтобы включить ваш отладчик для SIL симуляции, на Configuration Parameters> Code Generation> панель Verification, устанавливают флажок Enable source-level debugging for SIL.

Если у вашей топ-модели есть блоки Model, параметр Enable source-level debugging for SIL для топ-модели заменяет соответствующий параметр для моделей, на которые ссылаются.

Когда вы запускаете SIL симуляцию, например, на компьютере Windows, ваш файл model.c или model.cpp открывает в IDE Microsoft Visual Studio с точками останова отладчика в начале _initialize model и model функции _step.

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

Закончить сеанс отладки:

  1. Удалите все точки останова.

  2. Нажмите кнопку Continue (F5).

    SIL симуляция выполнение до завершения и завершения IDE Microsoft Visual Studio.

Примечание

В IDE Microsoft Visual Studio, если вы выбираете Debug> Stop Debugging, SIL симуляция испытывает таймаут со следующим сообщением об ошибке:

The timeout of 1 seconds for receiving data from the rtiostream 
interface has been exceeded. There are multiple possible causes 
for this failure.
... 
...

Похожие темы