Чтобы проверять на ошибки времени выполнения в коде C/C++, сгенерированном из кода MATLAB®, можно использовать Polyspace® Code Prover™. Чтобы проверять на дефекты, можно использовать Polyspace Bug Finder™. Если у вас есть Polyspace и Embedded Coder®, Polyspace интегрирован в рабочий процесс MATLAB Coder™.
В приложении MATLAB Coder можно запустить анализ Polyspace без дополнительной настройки.
В командной строке, после генерации кода с codegen
, можно запустить анализ Polyspace сгенерированного кода путем обеспечения генерации кода выходной папки pslinkrun
.
Сгенерируйте автономный код C/C++ (статическая библиотека, динамически подключаемая библиотека или исполняемая программа).
На странице Generate Code нажмите Polyspace.
Выберите опции. Смотрите Конфигурируют Усовершенствованные Опции Polyspace в Приложении MATLAB Coder (Polyspace Code Prover).
Нажмите Run.
Приложение регистрирует анализ вывод на вкладке Polyspace Log и открывает пользовательский интерфейс Polyspace.
codegen
Создайте объект pslinkoptions
для верификации кода, сгенерированного MATLAB Coder.
По мере необходимости измените свойства объектов:
В свойстве ResultDir
задайте имя папки для результатов Polyspace.
В свойстве VerificationMode
задайте продукт верификации Polyspace.
Запустите верификацию при помощи pslinkrun
. Обеспечьте объект pslinkoptions
и папку, которая содержит сгенерированный код.
Чтобы просмотреть результаты верификации, откройте пользовательский интерфейс 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. Смотрите Polyspace Выполнения на Коде C/C++, Сгенерированном из кода MATLAB (Polyspace Code Prover).