Проверьте на проблемы во время выполнения при помощи приложения

Прежде чем вы сгенерируете автономный код C/C++ для своего кода MATLAB®, это - лучшая практика сгенерировать MEX-функцию от ваших функций точки входа. Выполнение MEX-функции помогает вам обнаружить и зафиксировать ошибки времени выполнения, которые более трудно диагностировать в сгенерированном коде. Это также помогает вам проверить, что MEX обеспечивает ту же функциональность как оригинальный код MATLAB.

В приложении MATLAB Coder™, чтобы сгенерировать и запустить MEX-функцию для вашего кода MATLAB, выполняют Проверку для шага Проблем Во время выполнения.

  1. Запишите функцию или скрипт, который вызывает ваши функции точки входа. Можно использовать тот же тестовый файл (или файлы), что вы используете, чтобы автоматически задать входной параметр, вводит Задавать Входной шаг Типов.

  2. Завершите Выбрать Source Files и шаги Define Input Types. На странице Define Input Types нажмите Далее, чтобы пойти, чтобы Проверить на шаг Проблем Во время выполнения.

  3. Задайте тестовый файл. На предыдущем шаге, если вы автоматически сгенерировали входные типы, приложение заполняет диалоговое окно с тем тестовым файлом. Вместо тестового файла можно ввести код, который вызывает функции точки входа. Однако это - лучшая практика обеспечить тестовый файл.

  4. Нажмите Check for Issues. Приложение генерирует MEX-функцию от вашей функции MATLAB. Это запускает тест, который вы задали, заменив вызовами ваших функций точки входа MATLAB с вызовами сгенерированной MEX-функции. Приложение сообщает о генерации MEX или ошибках сборки на вкладке Errors. Приложение сообщает об ошибках времени выполнения MEX относительно вкладки Test Output.

  5. Если ошибки отчетов приложения, чтобы отредактировать код MATLAB, нажимают ошибки View.

  6. После того, как вы устраните проблемы, чтобы повторно выполнить тест, нажмите Check for Issues.

Соберите количества выполнения строки MATLAB

Когда выполнение приложения MEX-функция, это считает выполнение кода MEX, который соответствует строке кода MATLAB. Если приложение не обнаруживает проблемы, можно просмотреть эти количества выполнения строки. Количества выполнения строки помогают вам видеть, как хорошо ваш тест осуществляет ваш код MATLAB. Можно идентифицировать мертвый код и разделы кода, которые требуют дальнейшего тестирования. Смотрите Собираются и Счета Выполнения Строки Представления для Вашего КОДА MATLAB.

Отключите JIT-компиляцию для параллельных циклов

По умолчанию, чтобы ускорить генерацию MEX-функции, приложение пытается использовать своевременную (JIT) компиляцию. JIT-компиляция несовместима с определенными функциями генерации кода и опциями, такими как пользовательский код и использование библиотеки OpenMP. Если приложение не может использовать JIT-компиляцию, оно генерирует функцию MEX C/C++ вместо этого. Если ваш код использует parfor и библиотеку Enable OpenMP, если возможной установкой является Yes, приложение использует JIT-компиляцию и обрабатывает parfor - циклы как for - циклы. Если вы хотите, чтобы Проверка на шаг Проблем Во время выполнения запустила for - циклы параллельно, отключите JIT-компиляцию:

  1. На странице Check for Run-Time Issues нажмите Settings.

  2. На вкладке All Settings, JIT-компиляция Использования набора под контролем для Проблем Во время выполнения к No.

Похожие темы

Была ли эта тема полезной?