Можно сгенерировать автономные библиотеки и исполняемые файлы, которые обнаруживают и сообщают об ошибках времени выполнения, такой как за пределы индексация массива. Если сгенерированный код обнаруживает ошибку, он сообщает об ошибке и отключает программу.
Во время разработки, прежде чем вы сгенерируете код C/C++, это - лучшая практика протестировать сгенерированный код путем выполнения версии MEX алгоритма. Однако некоторые ошибки происходят только на целевом компьютере. Чтобы обнаружить эти ошибки, сгенерируйте автономный код C/C++ с включенным обнаружением ошибки времени выполнения. Обнаружение ошибки времени выполнения может влиять на производительность сгенерированного кода. Если производительность является фактором для вашего приложения, не генерируйте производственный код с включенным обнаружением ошибки времени выполнения.
По умолчанию обнаружение ошибки времени выполнения отключено для автономных библиотек и исполняемых файлов. Включить обнаружение ошибки времени выполнения и сообщающий для автономных библиотек и исполняемых файлов:
В командной строке используйте свойство RuntimeChecks настройки кода.
cfg = coder.config('lib'); % or 'dll' or 'exe'
cfg.RuntimeChecks = true;
codegen -config cfg myfunctionВ приложении MATLAB® Coder™, в диалоговом окне настроек проекта, на Отладке панели, устанавливают флажок проверок ошибки времени выполнения Generate.
Обнаружение ошибки времени выполнения и сообщающий в автономном коде имеет эти требования и ограничения:
Программное обеспечение сообщения об ошибке использует fprintf для сообщений ошибки при записи к stderr. Это использует abort, чтобы отключить приложение. Если fprintf и abort не доступны, необходимо обеспечить их. Функция abort резко отключает программу. Если ваша система поддерживает сигналы, можно отловить сигнал аварийного прекращения работы (SIGABRT) так, чтобы можно было управлять завершением программы.
Сообщения об ошибке находятся на английском языке только.
Некоторые проверки на ошибки требуют с двойной точностью поддержки. Поэтому аппаратные средства, на которых выполнения сгенерированного кода должны поддержать с двойной точностью операции.
Если программа отключает, выявление ошибок и создание отчетов, что программное обеспечение не отображает стек этапа выполнения. Чтобы осмотреть стек, присоедините отладчик. Кроме того, выявление ошибок и создание отчетов о программном обеспечении не высвобождают средства, такие как выделенная память.
Если программа отключает, выявление ошибок и создание отчетов, что программное обеспечение не высвобождает средства, такие как выделенная память.
В автономном коде функциональный error отображает сообщение, которое указывает, что ошибка произошла. Чтобы видеть фактическое сообщение, заданное error, необходимо сгенерировать и запустить MEX-функцию.
В автономном коде, если названо больше чем 1 аргументом, функциональный assert не сообщает об ошибке и не отключает выполнение. Если названо отдельным аргументом, например, assert(cond), если cond не является постоянным значением true, сообщает об ошибке и отключает выполнение.