Main Content

真理値表でのエラーのデバッグ

真理値表の指定が終了したら、そのデバッグ プロセスを開始します。最初の手順は、真理値表の過剰指定と過少指定の修正の説明に従って、診断を実行して真理値表の構文エラー (過剰指定や過少指定など) をチェックすることです。さらに、真理値表にブレークポイントを直接追加し、シミュレーション中にデバッグを行うことができます。

真理値表は、MATLAB® 内のスタンドアロンの Stateflow® チャートではサポートされません。詳細については、真理値表を使用して組み合わせ論理をモデル化を参照してください。

診断の実行による構文エラーの検出

構文エラーをチェックするには、以下のようにします。

  1. 真理値表をダブルクリックします。

  2. 真理値表で、[診断の実行] をクリックします。

    たとえば、判定列 D4 のアクションを存在しないアクションに変更した場合は、エラー メッセージが診断ビューアーに表示されます。

真理値表の診断は、新しい真理値表または修正された真理値表でモデルのシミュレーションを行うと自動的に実行されます。エラーが存在しない場合は、診断ウィンドウは表示されず、シミュレーションが即時に開始されます。

ブレークポイントを使用してロジックをデバッグ

Stateflow の真理値表でブレークポイントを使用すると、シミュレーションを一時停止してロジックをデバッグできます。ブレークポイントによってシミュレーションが一時停止したら、アクションをステップ実行して、シミュレーションの特定のポイントにおけるデータ値を調べることができます。

真理値表では、次のような異なるタイプのブレークポイントを設定できます。

  • 条件テスト

  • 判定テスト

  • 判定が有効

  • アクション実行

シミュレーションがブレークポイントで停止した後は、Stateflow エディターのツール バーの MATLAB コマンド プロンプトで、またはキーボード ショートカットを選択することにより、チャートを引き続き実行できます。

ツール バー アイコンオプションコマンド説明キーボード ショートカット

続行dbcont

次のブレークポイントまでシミュレーションを続行します。

Ctrl + T

ステップ オーバーdbstep

真理値表実行の次のステップに進みます。

F10

ステップ インdbstep in

関数を呼び出すステートまたは遷移のアクションからは、関数内の最初に実行可能なステートメントに進みます。

別の関数呼び出しを含む関数内のステートメントからは、2 番目の関数内で最初に実行可能なステートメントに進みます。

それ以外の場合は、真理値表実行の次のステップに進みます (「ステップ オーバー」を参照)。

F11

ステップ アウトdbstep out

関数呼び出しからは、関数を呼び出すステートメントに戻ります。

それ以外の場合は、次のブレークポイントまでシミュレーションを続行します (「続行」を参照)。

Shift+F11

ステップを進める  

デバッグ モードを終了し、次のタイム ステップの前にシミュレーションを一時停止します。

 

停止 dbquit

デバッグ モードを終了し、シミュレーションを停止します。

Ctrl + Shift + T

条件のブレークポイント

条件テスト時のブレークポイントを設定するには、条件セルを右クリックして [ブレークポイントの設定 (テスト済みの条件)] を選択します。表の左端、条件の番号の横に、赤のバッジが表示されます。モデルを実行すると、条件のテスト時にシミュレーションが一時停止します。Stateflow では、テスト中の条件行が強調表示されます。真理値表でデータにカーソルを合わせると、その現在の値が表示されます。

Truth table that is paused at a breakpoint when a condition is tested.

判定のブレークポイント

判定テスト時のブレークポイントを設定するには、判定列の上部を右クリックして [ブレークポイントの設定 (テスト済みの判定)] を選択します。判定列の上部、判定の番号の横に、赤のバッジが表示されます。モデルを実行すると、判定のテスト時にシミュレーションが一時停止します。Stateflow では、テスト中の判定列が強調表示されます。真理値表でデータにカーソルを合わせると、その現在の値が表示されます。

Truth table that is paused at a breakpoint when a decision is tested.

判定が有効な場合のブレークポイントを設定するには、判定列の下部のアクション セルを右クリックして [ブレークポイントの設定 (有効な判定)] を選択します。セルの上部、アクション番号の横に、赤のバッジが表示されます。モデルを実行すると、アクションが有効なときにシミュレーションが一時停止します。Stateflow では、有効な判定が強調表示されます。真理値表でデータにカーソルを合わせると、その現在の値が表示されます。

判定が有効なときに実行するアクションが複数ある場合、ブレークポイントは最初の実行可能なアクションに設定されます。

Truth table that is paused at a breakpoint when a decision is valid.

アクションのブレークポイント

アクション実行時のブレークポイントを設定するには、アクション セルを右クリックして [ブレークポイントの設定 (アクション実行)] を選択します。表の左端、アクションの番号の横に、赤のバッジが表示されます。モデルを実行すると、アクション実行時にシミュレーションが一時停止します。Stateflow では、テスト中のアクション行が強調表示されます。真理値表でデータにカーソルを合わせると、その現在の値が表示されます。

アクション セル内に複数のアクションがある場合、ブレークポイントは最初のアクションに設定されます。

Truth table that is paused at a breakpoint when an action is executed.

ブレークポイントの編集

ブレークポイントをクリックすると、[Edit Breakpoint] ダイアログ ボックスが開きます。このウィンドウから、[ブレークポイントを有効にする] チェック ボックスをオフにして、ブレークポイントを無効にすることができます。

ブレークポイントに条件を追加すると、ブレークポイントがシミュレーションを一時停止するのは、関連する条件が true の場合のみとなります。

関連するトピック