Можно сгенерировать автономные библиотеки и исполняемые файлы, которые обнаруживают и сообщают об ошибках времени выполнения, такой как за пределы индексация массива. Если сгенерированный код обнаруживает ошибку, он сообщает об ошибке и отключает программу.
Во время разработки, прежде чем вы сгенерируете код 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, сообщает об ошибке и отключает выполнение.