主要内容

本页采用了机器翻译。点击此处可查看最新英文版本。

检测 C/C++ 自定义代码中的设计错误

要检测模型模块或 Stateflow® 图中具有 C/C++ 自定义代码的模型中的除以零和超出范围的数组访问错误,请使用设计错误检测分析。Simulink Design Verifier 识别导致错误的代码,然后证明错误是有效的,或者生成复制错误的测试用例。

此示例显示如何在 Stateflow® 图中检测由 C/C++ 代码组成的模型中的除以零错误。

步骤 1:打开模型

示例模型 sldvexCustomCodeErrorDetectionExample 包含一个 Stateflow® 图,该图调用使用输入和输出总线的 C/C++ 自定义代码。

open_system('sldvexCustomCodeErrorDetectionExample');

步骤 2:执行设计错误检测分析

要执行设计错误检测分析,请在 Design Verifier 选项卡中点击检测设计错误。分析完成后,“结果摘要”窗口将显示一个目标被证伪。

步骤 3:查看分析结果

Design Verifier 选项卡的查看结果部分中,点击在模型中突出显示。要查看导致错误的 C/C++ 运行时错误目标,点击 Simulink® 编辑器。结果检查器窗口显示除以零的目标。

注意:当您点击“错误 - 需要仿真目标”的查看测试用例时,Simulink® Design Verifier™ 会显示复制该错误的测试用例。如果您仿真测试用例,MATLAB® 可能会在自定义代码分析期间崩溃。

要查看 HTML 报告,请在 Design Verifier 选项卡上点击 HTML 报告。报告中的设计错误检测目标状态部分描述了被伪造的目标。

步骤 4:修复设计错误

在示例模型中,右键点击灰色的 Saturation 模块,然后取消注释该模块。通过点击检测设计错误重新分析模型。结果表明 C/C++ 运行时目标是有效的。

步骤 5:清理

为了完成示例,请关闭模型。

close_system('sldvexCustomCodeErrorDetectionExample', 0);

相关话题