Main Content

デバッグ用のモデルの構成

[コンフィギュレーション パラメーター] ダイアログ ボックスで [診断] ペインのパラメーターとデバッグ パラメーターを使用して、生成コードとビルド プロセスがデバッグ用に設定されるようにモデルを構成します。モデル コンパイルの段階や目的言語コードの生成段階に適応するようにパラメーターを設定することができます。

ターゲットをカスタマイズし、古い形式のコードを統合し、あるいは、新しいブロックを開発するために TLC コードを書いている場合は、下の表にあるパラメーターが役立ちます。

目的...選択
MATLAB® コマンド ウィンドウ内でコード生成中の進行情報を表示します。

Verbose build。コンパイラの出力も表示されます。

ビルドの終了時にビルド プロセスによって model.rtw ファイルがビルド フォルダーから削除されないようにします。

Retain .rtw file。このパラメーターは、ターゲット ファイルを変更中に model.rtw ファイルを調べる必要があるときに便利です。

TLC プロファイラーに、コード生成中に実行された TLC コードの性能を分析し、レポートを生成するように指示します。Profile TLC。レポートは HTML 形式で、Web ブラウザーで読むことができます。
コード生成中に TLC デバッガーを開始Start TLC debugger when generating code。または、[コード生成] ペインでSystem target fileパラメーターに引数「-dc」を入力します。デバッガーを開始してデバッガー スクリプトを実行するには、[システム ターゲット ファイル] に「-df filename」を入力します。
コード ジェネレーターがコード生成中に TLC コードの各行を何回読み取るかを示す統計を含むレポートを生成します。Start TLC coverage when generating code。または、[コード生成] ペイン上で [システム ターゲット ファイル] パラメーター用の引数 -dg を入力します。
ユーザー提供の TLC ファイルが %assert 命令を含み、それが FALSE に評価する場合は、ビルドを停止します。

Enable TLC assertion。または、MATLAB コマンドを使用して、TLC アサーション処理を制御することができます。

フラグをオンまたはオフに設定するには、set_param コマンドを使用します。既定はオフです。

set_param(model, 'TLCAssertion', 'on|off') 

現在の設定をチェックするには、get_param を使用します。

get_param(model, 'TLCAssertion')
調整可能性の消失を検出

[診断][データ有効性] ペインの調整可能性の消失を検出。このパラメーターを使用して、式が数値の式に簡略化される時に調整可能性の消失を報告することができます。調整可能なワークスペース変数がマスク初期化コードにより変更されたり、サポートされていない演算子またが関数をもつ演算式内で使用されたりすると、この消失が発生することがあります。可能な値は以下のとおりです。

  • none — 調整可能性の消失が発生しても通知されません。

  • warning — 調整可能性の消失は警告を生成します (既定の設定)。

  • error — 調整可能性の消失はエラーを生成します。

サポートされている演算子と関数のリストの詳細については、調整可能な式の制限を参照してください。

Model Verification (Assertion) ブロックを有効にする

Model Verification ブロックを有効にする。このパラメーターを使用して、Assert、Check Static Gap、関連範囲チェック ブロックなどのモデル検証ブロックを有効/無効にします。この診断は生成コードおよびシミュレーションの動作に適用されます。たとえば、モデル検証ブロックが S-Function 内にあると、シミュレーションとコード生成はこのパラメーターを無視します。可能な値は以下のとおりです。

  • User local settings

  • Enable All

  • Disable All

無効にされなかった Assertion ブロックの場合、ブロック入力信号タイプ (それぞれ boolean、実数、整数) により異なりますが、モデル用の生成コードは以下のステートメントのいずれか含みます。

utAssert(input_signal);
utAssert(input_signal != 0.0);
utAssert(input_signal != 0);

Variant activation time パラメーターが startup に設定され、Allow zero active variant controls パラメーターが off に設定されたバリアント ブロックがモデルに含まれている場合、生成されたコード内の関数 model_initialize にはこのアサーションが含まれます。

utAssert(<variant condition expression on the block>);
このステートメントは、このようなバリアント ブロックに対して少なくとも 1 つのバリアントの選択がアクティブであることをチェックします。

既定の設定では、utAssert は生成コードを変更しません。実行を中止するアサーションの場合は、[コード生成]Make commandパラメーターに次の make_rtw コマンドを指定することにより、それらを有効にしなければなりません。

make_rtw OPTS="-DDOASSERTS"

トリガーされたアサーションが実行を中止する代わりにアサーション ステートメントを出力するようにしたい場合は、以下のバリアントを使用します。

make_rtw OPTS="-DDOASSERTS -DPRINT_ASSERTS"

utAssert は #define utAssert(exp) assert(exp) として定義されます。

アサーション動作をカスタマイズするには、既定の utAssert.h をオーバーライドする手書きのヘッダー ファイル内で、自分の utAssert の定義を提供します。カスタマイズされたヘッダー ファイルを生成コード内に含める方法の詳細については、モデル コンフィギュレーション パラメーターを使用した外部コードの統合を参照してください。

アクセラレータ モードでモデルを実行する場合は、Simulink® エンジンは生成コードを使用する代わりに自身を呼び出して、Assertion ブロックを実行します。そのため、アサーションが失敗すると、ユーザー定義のコールバックは再び呼び出されます。

TLC デバッグ オプションの詳細については、Target Language Compilerの「デバッグ」を参照してください。また、モデル ビルドをトラブルシューティングするためのツールとしてモデル アドバイザーを使用することを検討してください。モデル アドバイザーの詳細については、モデル アドバイザー チェックの実行を参照してください。

関連するトピック