主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

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

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

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

メモ

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

金宝app仿真软件モデルでのStateflowチャートのデバッグの詳細については,Stateflowチャートのデバッグを参照してください。

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

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

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

チャート上のブレークポイント

チャートにブレークポイントを設定するには,チャート内を右クリックして[チャート条目時にブレークポイントを設定)を選択します。このタイプのブレークポイントは,チャートに入る前に実行を一時停止します。

ブレークポイントを削除するには,チャート内を右クリックして,[チャート条目時にブレークポイントを設定)オプションをオフにします。

ステートおよび遷移上のブレークポイント

ステートおよび遷移では,さまざまなタイプのブレークポイントを設定できます。

オブジェクト ブレークポイントのタイプ
ステート

時ステート条目——ステートの条目アクションを実行する前に実行を一時停止します。

在ステート——ステートのアクションを実行する前に実行を一時停止します。

ステート時退出——ステートの退出アクションを実行した後に実行を一時停止します。

遷移

遷移テスト時——遷移が有効なパスであるかをテストする前に実行を一時停止します。遷移に条件がない場合は、このブレークポイント タイプは使用できません。

遷移が有効な場合——遷移が有効になった後,遷移を行う前に実行を一時停止します。

ステートまたは遷移にブレークポイントを設定するには,ステートまたは遷移を右クリックして[ブレークポイントの設定)を選択します。ステートの場合、既定のブレークポイントは[ステー時ト条目)(在ステート]です。遷移の場合、既定のブレークポイントは[遷移が有効な場合)です。ブレークポイントのタイプを変更するには,ブレークポイントのバッジをクリックして,別のブレークポイントの構成を選択します。詳細については,ブレークポイントのタイプと条件の管理を参照してください。

ブレークポイントを削除するには,ステートまたは遷移を右クリックして[ブレークポイントのクリア]を選択します。チャート内のブレークポイントをすべて削除するには,チャート内を右クリックして[清除图表中的所有断点]を選択します。

ブレークポイントのタイプと条件の管理

1つのブレークポイントバッジで複数のタイプのブレークポイントを表すことができます。ステートまたは遷移に設定されているブレークポイントのタイプをリストするツールヒントを表示するには、そのバッジにカーソルを合わせます。この例では、ステート一个のバッジは2つのブレークポイントタイプ[ステー時ト条目)(在ステート]を表しています。

オブジェクトのブレークポイントのタイプを変更するには,ブレークポイントバッジをクリックします。[ブレークポイント]ダイアログボックスでは,オブジェクトタイプに応じてさまざまなブレークポイントの設定を選択できます。[ブレークポイント]ダイアログボックスですべてのチェックボックスをオフにすると,ブレークポイントが削除されます。

実行がブレークポイントで停止する回数を制限するには,ブレークポイントに条件を追加します。既定では,Stateflowチャートは,ブレークポイントに達するたびに一時停止します。ブレークポイントに条件を追加すると,チャートは条件が真の場合にのみブレークポイントで一時停止します。たとえば,以下の条件では,xの値が負の場合にのみ,ステート一个のブレークポイントがチャートの実行を一時停止します。

ブレークポイントの条件を指定するには,数値およびブレークポイントの位置でスコープ内にあるStateflowデータオブジェクトを組み合わせた任意の有効なMATLAB式を使用できます。

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

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

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

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

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

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

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

バッジ 説明

実行はチャートに入る前か,ステートの条目アクション内で一時停止。

実行はステートのアクション内で一時停止。

実行はステートの退出アクション内で一時停止。

実行は遷移のテストを行う前に一時停止。

実行は有効な遷移を行う前に一時停止。

チャートがブレークポイントで一時停止しているとき,次を使用して実行を続けることができます。

  • [デバッグ]タブのボタン

  • MATLABコマンドウィンドウ

  • キーボードショートカット

アクション [デバッグ]タブのボタン MATLABコマンド キーボードショートカット 説明
続行

dbcont Ctrl + T

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

ステップオーバー

dbstep F10

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

  • チャートに入る

  • 遷移アクションの実行

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

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

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

ステップイン

dbstep在

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

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

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

ステップアウト

dbstep出来 Shift +季

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

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

停止

dbquit Ctrl + Shift + T

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

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

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

メモ

スタンドアロンチャートはクロック時間に基づいて時相論理を定義するので,チャートがブレークポイントで一時停止している間に時相論理演算子が有効になる可能性があります。この場合,チャートはデバッグモードから出て,次のブレークポイントまで実行を継続します。

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

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

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

这一点。x = 7
新しい値が[シンボル]ペインに表示されます。

メモ

金宝app仿真软件モデルのチャートをデバッグする場合,キーワードは使用しないでください。代わりに,デバッグプロンプトで直接すべてのStateflowデータにアクセスできます。詳細については,MATLABコマンドウィンドウでのデータの表示と変更を参照してください。

関連するトピック