Если выполнение 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 с включенной отладкой:
На странице Generate Code нажмите Verify Code.
Установите флажок Enable source-level debugging for SIL.
Нажмите Run Generated Code.
На компьютере с Windows ваша
или user_fn
.c
откроется файл в среде IDE Microsoft Visual Studio с точками останова отладчика в начале user_fn
.cppuser_fn
_initialize
и user_fn
функций.
Теперь можно использовать функции отладчика для наблюдения за поведением кода. Для примера можно пройти по коду и изучить переменные.
Чтобы завершить сеанс отладки:
Удалите все точки останова.
Нажмите кнопку Continue (F5).
Выполнение SIL выполняется до своего завершения.
Чтобы завершить процесс выполнения 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. ... ...