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

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

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

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

  • Если вы включаете обнаружение ошибки времени выполнения, сообщения, отправленные в stderr.

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

Примечание

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

Выполнение СИЛА поддерживает следующие отладчики:

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

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

Примечание

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

Запускать выполнение SIL с отладкой активированного:

  1. На странице Generate Code нажмите Verify Code.

  2. Установите флажок Enable source-level debugging for SIL.

  3. Нажмите Run Generated Code.

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

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

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

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

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

    Выполнение SIL выполнение до завершения.

  3. Чтобы отключить процесс выполнения SIL, на вкладке Test Output, щелкают по ссылке, которая следует за To terminate execution, например, clear kalman01_sil.

    IDE Microsoft Visual Studio закрывается автоматически.

Примечание

Если вы выбираете Debug> Stop Debugging, времена выполнения SIL со следующим сообщением об ошибке:

Communications error: failed to send data to the target. There might be 
multiple reasons for this failure.

...
...

Похожие темы