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

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

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

  1. Написание функции или скрипта, который вызывает ваши функции точки входа. Можно использовать тот же тестовый файл (или файлы), что и для автоматического определения входных типов на Define Input Types шаге.

  2. Выполните Select Source Files и Define Input Types шаги. На странице Define Input Types нажмите Next, чтобы перейти к Check for Run-Time Issues шагу.

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

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

  5. Если приложение сообщает об ошибках, чтобы изменить код MATLAB, нажмите View errors.

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

Приложение MATLAB Coder не поддерживается в MATLAB Online™.

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

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

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

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

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

  2. На вкладке All Settings установите Use JIT compilation in Check for Run-Time Issues равным No.

Похожие темы