Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

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);

関連するトピック