ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

スタンドアロンの Stateflow チャートのデバッグ

スタンドアロンの Stateflow® チャートは、有限ステート マシンの動作を定義する MATLAB® クラスです。スタンドアロンのチャートは、MATLAB をアクション言語として Classic チャートのセマンティクスを実装します。Simulink® でのコード生成が制限されている関数を含めて、MATLAB のすべての機能を使用してチャートをプログラミングできます。詳細については、MATLAB オブジェクトとして実行する Stateflow チャートの作成を参照してください。

スタンドアロンのチャートは、MATLAB コマンド ウィンドウまたは Stateflow エディターで実行できます。デバッグを有効にするには、スタンドアロンのチャート、またはチャートを実行する MATLAB スクリプトでブレークポイントを設定します。ブレークポイントはチャートの実行を中断します。実行が停止されている間に、チャート内の各アクションをステップ実行したり、データ値を表示したり、MATLAB ワークスペースを操作してチャートのステートを調べたりすることができます。

メモ

MATLAB スクリプトから実行するスタンドアロンのチャートをデバッグするときは、まず Stateflow エディターを開きます。Stateflow エディターを少なくとも 1 回開く前にスタンドアロンのチャートをデバッグしようとすると、予期しない結果が生じる可能性があります。

Simulink モデルでの Stateflow チャートのデバッグの詳細については、チャートのデバッグを参照してください。

ブレークポイントの設定とクリア

ブレークポイントは、チャート、ステートおよび遷移に設定できます。

  • チャート上でブレークポイントを追加するには、チャート内を右クリックして [チャート Entry 時にブレークポイントを設定] を選択します。このタイプのブレークポイントは、チャートに入る前に実行を中断します。ブレークポイントを削除するには、チャート内を右クリックして、[チャート Entry 時にブレークポイントを設定] オプションをオフにします。

  • ステートにブレークポイントを追加するには、ステートを右クリックして [ブレークポイントの設定] を選択します。このタイプのブレークポイントは、チャートがステートの entry アクションと during アクションを実施する前に、実行を中断します。ブレークポイントを削除するには、ステートを右クリックして [ブレークポイントのクリア] を選択します。

  • 遷移にブレークポイントを追加するには、遷移を右クリックして [ブレークポイントの設定] を選択します。このタイプのブレークポイントは、遷移が有効になったときに実行を中断します。ブレークポイントを削除するには、遷移を右クリックして [ブレークポイントのクリア] を選択します。

ブレークポイントは、円形の赤のバッジとして表示されます。たとえば、以下のチャートでは、ステート A と、A から B への遷移にブレークポイントが含まれています。

チャート内のブレークポイントをすべて削除するには、チャート内を右クリックして [Clear All Breakpoints In Chart] を選択します。

ブレークポイント後のチャート実行の制御

実行がブレークポイントで停止すると、Stateflow はデバッグ モードに入ります。

  • MATLAB コマンド プロンプトが K>> に変わります。

  • [シンボル] ウィンドウに、チャート内の各データ オブジェクトの値が表示されます。

  • チャートではアクティブな要素が青色で、現在実行中のオブジェクトが緑色で強調表示されます。

たとえば、ステート A のブレークポイントで実行が停止すると、このステートの境界線とステートの entry アクションの最初のステートメントが緑で強調表示されます。

実行が一時停止されるグラフィカル オブジェクトに、実行ステータス バッジが表示されます。

バッジ説明

実行がチャートまたはステートに入る前に停止

ステート during のアクションで実行が停止

実行がステートを終了した後に停止

実行が有効な遷移を実行する前に停止

Stateflow エディターやデバッグ プロンプトを使用するか、またはキーボードのショートカットを選択することによって実行を続行できます。

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

続行dbcont

次のブレークポイントまで実行を続行します。

Ctrl + T

ステップ オーバーdbstep

チャート実行の次のステップに進みます。チャート レベルでは、以下のようなステップが考えられます。

  • チャートに入る

  • 遷移アクションの実行

  • ステートのアクティブ化

  • ステート アクションの実行

詳細については、Stateflow チャートの実行を参照してください。

F10

ステップ インdbstep in

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

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

それ以外の場合は、チャート実行の次のステップに進みます ([ステップ オーバー] オプションを参照)。

F11

ステップ アウトdbstep out

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

それ以外の場合は、次のブレークポイントまで実行を続行します ([続行] オプションを参照)。

Shift+F11

停止 dbquit

デバッグ モードを終了して実行を中断します。

スタンドアロンのチャートを Stateflow エディターから実行すると、このアクションにより、チャート オブジェクトが MATLAB ワークスペースから削除されます。

Ctrl + Shift + T

複数のステートメントを含むステート アクションまたは遷移アクションでは、[ステップ オーバー] を選択することにより、個々のステートメントを 1 つずつステップ実行できます。Stateflow エディターでは、各ステートメントが実行前に強調表示されます。

チャート データの値の確認と変更

Stateflow がデバッグ モードのとき、[シンボル] ウィンドウには、チャート内の各データ オブジェクトの値が表示されます。チャート内でステートまたは遷移をポイントすることによってデータ値を調べることもできます。ツールヒントには、選択したステートまたは遷移で使用されている各データ オブジェクトの値が表示されます。

チャートの動作をテストするために、[シンボル] ウィンドウで、実行中にデータ オブジェクトの値を変更することができます。あるいは、デバッグ プロンプトで、チャート オブジェクト名の代わりに this という名前を使用して新しい値を入力します。たとえば、ローカル データ x の値を変更するには、次のように入力します。

this.x = 7
新しい値が [シンボル] ウィンドウに表示されます。

関連するトピック