由 MATLAB Coder 生成的 C/C++ 代码的 Polyspace 验证
要检查从 MATLAB® 代码生成的 C/C++ 代码中的运行时错误,您可以使用 Polyspace® Code Prover™。要检查缺陷,您可以使用 Polyspace Bug Finder™。如果您有 Polyspace 和 Embedded Coder®,则 Polyspace 会集成到 MATLAB Coder™ 工作流中。
在 MATLAB Coder 中,您无需额外设置即可运行 Polyspace 分析。
在命令行中,在使用
codegen
生成代码后,您可以通过向pslinkrun
(Polyspace Bug Finder) 提供代码生成输出文件夹对生成的代码运行 Polyspace 分析。
在 MATLAB Coder 中运行 Polyspace 分析
生成独立的 C/C++ 代码(静态库、动态链接库或可执行程序)。
在生成代码页上,点击 Polyspace。
选择选项。请参阅在 MATLAB Coder 中配置高级 Polyspace 选项 (Polyspace Code Prover)。
点击运行。
该 App 在 Polyspace 日志选项卡上记录分析输出并打开 Polyspace 用户界面。
对由 codegen
生成的代码运行 Polyspace 分析
创建一个
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
查看验证结果。
查看分析结果
在 Polyspace 用户界面的结果列表窗格中,查看运行时检查。看看您能否将问题追溯到最初的 MATLAB 代码。请参阅Interactively Trace Between MATLAB Code and Generated C/C++ Code。
例如,C 代码中的运算可能导致溢出,因为 Polyspace 假设函数输入的范围为无界。请考虑对输入指定约束,并用 Polyspace 重新分析代码。请参阅对从 MATLAB 代码生成的 C/C++ 代码运行 Polyspace (Polyspace Code Prover)。
另请参阅
pslinkoptions
(Polyspace Code Prover) | pslinkrun
(Polyspace Code Prover)
相关主题
- 对从 MATLAB 代码生成的 C/C++ 代码运行 Polyspace (Polyspace Code Prover)
- 在 MATLAB Coder 中配置高级 Polyspace 选项 (Polyspace Code Prover)
- Generate C/C++ Code with Improved MISRA and AUTOSAR Compliance