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