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

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

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

  • Выход из printf операторы в коде.

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

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

Примечание

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

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

  • В Windows®, Microsoft® Визуальная студия® отладчик.

  • На Linux®, GNU® Отладчик отображения данных (DDD).

  • На macOS, LLDB Debugger (LLBD).

Примечание

Отладку 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 с точками останова отладчика в начале user_fn_initialize и 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.

...
...

Похожие темы