Проверка Polyspace кода C/C + +, сгенерированного MATLAB Coder

Чтобы проверить на ошибки времени выполнения в коде C/C + +, сгенерированном из MATLAB® код, вы можете использовать Polyspace® Code Prover™. Для проверки дефектов можно использовать Polyspace Bug Finder™. Если у вас есть Polyspace и Embedded Coder®, Polyspace интегрирован в рабочий процесс MATLAB Coder™.

  • В приложении MATLAB Coder можно запустить анализ Polyspace без дополнительной настройки.

  • В командной строке, после генерации кода с codegen, можно запустить анализ Polyspace на сгенерированном коде путем предоставления выходной папки генерации кода в pslinkrun (Polyspace Bug Finder).

Запуск анализа Polyspace в приложении MATLAB Coder

  1. Сгенерируйте автономный код C/C + + (статическая библиотека, динамически связанная библиотека или исполняемая программа).

  2. На странице Generate Code нажмите Polyspace.

  3. Выберите опции. См. «Настройка расширенных опций Polyspace в приложении MATLAB Coder App (Polyspace Code Prover)».

  4. Нажмите Run.

    Приложение регистрирует выход анализа на вкладке Polyspace Log и открывает пользовательский интерфейс Polyspace.

Запустите анализ Polyspace на коде, сгенерированном codegen

  1. Создайте pslinkoptions объект для верификации кода, сгенерированного MATLAB Coder.

  2. При необходимости измените свойства объекта:

    • В ResultDir задайте имя папки для результатов Polyspace.

    • В VerificationMode задайте продукт верификации Polyspace.

  3. Запустите верификацию при помощи pslinkrun. Предоставьте pslinkoptions объект и папка, содержащая сгенерированный код.

  4. Чтобы просмотреть результаты верификации, откройте пользовательский интерфейс Polyspace.

Например, предположим, что вы сгенерировали статическую библиотеку для функции MATLAB myFunction и что выходная папка генерации кода codegen/lib/myFunction. Чтобы запустить Polyspace Code Prover на сгенерированном коде, используйте этот код:

opts = pslinkoptions('codegen');
opts.ResultDir = 'polyspace';
opts.VerificationMode = 'CodeProver';
pslinkrun('-codegenfolder', 'codegen/lib/myFunction', opts);
polyspaceCodeProver('polyspace/myFunction.psprj');

Можно также задать VerificationMode свойство к 'BugFinder' и просмотрите результаты верификации при помощи polyspaceBugFinder.

Просмотр результатов анализа

На панели Results List пользовательского интерфейса Polyspace проверьте проверки во время выполнения. Посмотрите, можно ли проследить проблемы к оригинальному коду MATLAB. Смотрите Интерактивное Отслеживание между Кодом MATLAB и Сгенерированным Кодом C/C + +.

Для примера операция в Код С может переполниться, потому что Polyspace принимает неограниченный диапазон для входного параметра функции. Рассмотрите установка ограничения на вход и повторное анализ кода с Polyspace. Смотрите Run Polyspace on C/C + + Code, сгенерированный из кода MATLAB (Polyspace Code Prover).

См. также

(Polyspace Code Prover) | (Polyspace Code Prover)

Похожие темы