デッド ロジックの検出
チェック ID: mathworks.sldv.deadlogic
シミュレーション中にアクティブにならないロジックを特定します。
説明
このチェックは、シミュレーション中にアクティブにならないモデルの部分を特定します。
Simulink® Design Verifier™ の設計エラー検出を使用すると、より詳しい解析を実行してデッド ロジックとアクティブ ロジックの両方を特定することができます。詳細については、不適切な値を原因とするデッド ロジックの検出 (Simulink Design Verifier)を参照してください。
このチェックの推奨事項に従うと、組み込みアプリケーション用の MISRA C:2012 準拠コードと、CERT C 標準および CWE 標準に準拠するコードが生成される可能性が高くなります。
結果と推奨アクション
| 結果 | 推奨アクション |
|---|---|
| 失敗。モデルに互換性がない | モデルの非互換性を解決します。以下を参照してください。
自動スタブによる非互換性処理 (Simulink Design Verifier)も参照してください。 |
| デッド ロジックがモデルで検出された | Simulink Design Verifier によって、これらの判定と条件結果は発生し得ず、モデルにおいてデッド ロジックであることが証明されました。デッド ロジックは、パラメーターに指定された制約や、入力ポートに指定された最小制約および最大制約の副作用である場合もあります。また、Simulink Design Verifier による近似が原因でデッド ロジックが発生することも稀にあります。この解析で判定されなかったオブジェクティブが存在する可能性があります。解析の結果を拡張するには、アクティブ ロジックも特定できる Simulink Design Verifier の設計エラー検出を使用してください。Simulink エディターから、[アプリ] 、 [Design Verifier] 、 [設定] を選択します。[コンフィギュレーション パラメーター] ウィンドウで、[Design Verifier] 、 [設計エラー検出] ペインから、[デッド ロジック (一部)] を選択するか、DVDetectDeadLogic および DVDetectActiveLogic を on に設定します。 |
| デッド ロジックがモデルで検出されなかった | Simulink Design Verifier はモデル内でデッド ロジックを検出しませんでした。この解析で判定されなかったオブジェクティブが存在する可能性があります。解析の結果を拡張するには、アクティブ ロジックも特定できる Simulink Design Verifier の設計エラー検出を使用してください。Simulink エディターから、[アプリ] 、 [Design Verifier] 、 [設定] を選択します。[コンフィギュレーション パラメーター] ウィンドウで、[Design Verifier] 、 [設計エラー検出] ペインから、[デッド ロジック (一部)] を選択するか、DVDetectDeadLogic および DVDetectActiveLogic を on に設定します。 |
機能および制限事項
ライブラリ モデルでは動作しません。
マスク サブシステムの内容を解析します。既定では、入力パラメーター [マスク内を表示] は
allに設定されます。ライブラリにリンクされたブロックの内容を解析します。既定では、入力パラメーター [リンクに従う] は
onに設定されます。対象外指定を実行できない。
参考
MISRA C:2012: ルール 2.1
CERT C、MSC07-C
CWE、CWE-561
Secure Coding (Embedded Coder)
不適切な値を原因とするデッド ロジックの検出 (Simulink Design Verifier)
Design Verifier ペイン: 設計エラー検出 (Simulink Design Verifier)