C/C++ カスタム コードの設計エラーの検出
モデル ブロックまたは Stateflow® チャート内にある、C/C++ カスタム コードを含むモデルのゼロ除算および配列の範囲外へのアクセス エラーを検出するには、設計エラー検出解析を使用します。Simulink Design Verifier は、エラーとなるコードを特定し、エラーが有効であることを証明するか、エラーを再現するテスト ケースを生成します。
この例では、Stateflow® チャートの C/C++ コードから構成されるモデルのゼロ除算を検出する方法を説明します。
手順 1: モデルを開く
モデル例 sldvexCustomCodeErrorDetectionExample
は、入力バスと出力バスを使用する C/C++ カスタム コードを呼び出す Stateflow® チャートから構成されます。
open_system('sldvexCustomCodeErrorDetectionExample');
手順 2: 設計エラー検出解析の実行
設計エラー検出解析を実行するには、[Design Verifier] タブで、[設計エラー検出] をクリックします。解析が完了すると、[検証結果の概要] ウィンドウに 1 つのオブジェクティブが反証されたことが示されます。
手順 3: 解析結果のレビュー
[Design Verifier] タブの [結果の確認] セクションで、[モデル内で強調表示] をクリックします。エラーが発生する C/C++ 実行時エラーのオブジェクティブを表示するには、Simulink® エディターをクリックします。結果インスペクター ウィンドウには、ゼロ除算オブジェクティブが表示されます。
メモ: [エラー - シミュレーションが必要] オブジェクティブで [テスト ケースを表示] をクリックすると、Simulink® Design Verifier™ にエラーを再現するテスト ケースが表示されます。テスト ケースのシミュレーションを行うと、MATLAB® はカスタム コード解析中にクラッシュする場合があります。
HTML レポートを表示するには、[Design Verifier] タブで [HTML レポート] をクリックします。レポートの [設計エラー検出オブジェクティブのステータス] セクションでは、反証されたオブジェクティブについて説明します。
手順 4: 設計エラーの修正
モデル例では、Saturation ブロックを右クリックし、ブロックのコメントを解除します。[設計エラー検出] をクリックし、モデルを再解析します。結果には、C/C++ 実行時オブジェクティブが有効であることが示されます。
手順 5: クリーン アップ
例を完了するには、モデルを閉じます。
close_system('sldvexCustomCodeErrorDetectionExample', 0);