exponenta event banner

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

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

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

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

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

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

Примечание

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

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

  • В ОС Windows ® отладчик Microsoft ® Visual Studio ®.

  • В Linux ® отладчик GNU ® Data Display Debugger (DDD).

  • На macOS, отладчик LLDB (LLBD).

Примечание

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

Чтобы запустить выполнение SIL с включенной отладкой:

  1. На странице Создать код щелкните Проверить код.

  2. Установите флажок Включить отладку на уровне источника для SIL.

  3. Щелкните Выполнить сгенерированный код.

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

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

Для завершения сеанса отладки:

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

  2. Нажмите кнопку «Продолжить» (F5).

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

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

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

Примечание

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

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

...
...

Связанные темы