Main Content

チャートのデバッグのためのブレークポイントの設定

"ブレークポイント" を設定する際、Stateflow® チャートのデバッグを有効にします。ブレークポイントは、チャートのステータスを確認できるようシミュレーションを一時停止する、Stateflow チャート上のポイントです。シミュレーションが一時停止している間、Stateflow データの表示、MATLAB® ワークスペースの操作、およびシミュレーションのステップ実行を行うことができます。

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

Stateflow chart with breakpoints on a state and a transition.

Stateflow オブジェクトへのブレークポイントの設定

ブレークポイントは、チャート、ステート、遷移、グラフィカル関数、真理値表関数、およびイベントに設定できます。

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

チャートにブレークポイントを設定するには、チャート内を右クリックして [チャート Entry 時にブレークポイントを設定] を選択します。このタイプのブレークポイントは、チャートに入る前にシミュレーションを停止します。

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

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

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

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

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

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

ステート Exit 時 — ステートの exit アクションを実行した後にシミュレーションを一時停止します。

遷移

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

遷移が有効な場合 — 遷移が有効であると判明した後、その遷移が発生する前にシミュレーションを一時停止します。

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

ブレークポイントを削除するには、ステートまたは遷移を右クリックして [ブレークポイントのクリア] を選択します。

Stateflow 関数上のブレークポイント

グラフィカル関数または真理値表関数にブレークポイントを設定するには、関数を右クリックして [関数呼び出し時にブレークポイントを設定] を選択します。このタイプのブレークポイントは、関数を呼び出す前にシミュレーションを一時停止します。

ブレークポイントを削除するには、関数を右クリックして、[関数呼び出し時にブレークポイントを設定] オプションをクリアします。

イベント上のブレークポイント

イベント上では次の 2 つのタイプのブレークポイントを選択できます。

  • ブロードキャストの開始 — イベントをブロードキャストする前にシミュレーションを一時停止します。

  • ブロードキャストの終了 — Stateflow オブジェクトがイベントを読み取った後にシミュレーションを一時停止します。

使用可能なブレークポイントはイベントのスコープによって異なります。

イベントのスコープブロードキャストの開始ブロードキャストの終了
ローカル使用可能使用可能
入力使用可能使用不可
出力使用不可使用不可

イベントにブレークポイントを設定またはクリアするには、[プロパティ インスペクター] かモデル エクスプローラーを使用して [デバッガーのブレークポイント] プロパティを変更します。詳細については、デバッガー ブレーク ポイントを参照してください。

ブレークポイントのタイプの変更

1 つのブレークポイント バッジで複数のタイプのブレークポイントを表すことができます。Stateflow オブジェクトに設定されているブレークポイントのタイプをリストするツールヒントを表示するには、そのバッジにカーソルを合わせます。この例では、ステート upshifting のバッジは 2 つのブレークポイント タイプ [ステート Entry 時][During ステート] を表しています。

Tooltip that shows the breakpoint types on a state.

オブジェクトのブレークポイントのタイプを変更するには、ブレークポイント バッジをクリックします。[ブレークポイント] ダイアログ ボックスでは、オブジェクト タイプに応じて別のブレークポイントの設定を選択できます。

Breakpoints dialog box for a state.

[ブレークポイント] ダイアログ ボックスですべてのチェック ボックスをオフにすると、ブレークポイントが削除されます。

ブレークポイント条件の追加

シミュレーションがブレークポイントで停止する回数を制限するには、ブレークポイントに条件を追加します。既定では、Stateflow チャートは、ブレークポイントに達するたびに一時停止します。ブレークポイントに条件を追加すると、チャートは条件が真の場合にのみブレークポイントで一時停止します。

ブレークポイントに条件を追加するには、次を行います。

  1. [デバッグ] タブで、[ブレークポイント リスト] をクリックして Stateflow ブレークポイントと監視ウィンドウを開きます。あるいは、[ブレークポイント] ダイアログ ボックスの [ブレークポイント リスト] リンクをクリックしてブレークポイントと監視ウィンドウを開くこともできます。

  2. [ブレークポイント] タブを選択します。[ブレークポイント] タブにはチャート内のすべてのブレークポイントがリストされます。詳細については、ブレークポイントと監視ウィンドウを使用したブレークポイントの管理を参照してください。

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

メモ

ブレークポイント条件式ではメッセージ データを使用できません。

たとえば、以下のチャートでは steady_state から upshifting への遷移にブレークポイントが設定されています。このブレークポイントは、speed の値が up_th よりずっと低い場合であっても、この遷移がテストされるたびにシミュレーションを停止します。

Tooltip that shows the breakpoint types on a transition.

遷移の前のチャートを調べるため、speed の値が up_th の値に近づいたときのみブレークポイントがシミュレーションを一時停止するようにします。ブレークポイントに条件 speed > up_th-2 を設定すると、speed の値が up_th の値から 2 以内である場合にのみシミュレーションは一時停止します。

Breakpoints pane of the Stateflow breakpoints and watch window.

シミュレーションが一時停止したら、変数 speed および up_th の値を調べてシミュレーションをステップ実行することができます。詳細については、デバッグ中のデータおよびメッセージの検査と変更ブレークポイント後のチャート実行の制御を参照してください。

ブレークポイントと監視ウィンドウを使用したブレークポイントの管理

チャート内のすべてのブレークポイントを Stateflow ブレークポイントと監視ウィンドウで管理できます。ブレークポイントと監視ウィンドウを開くには、[デバッグ] タブで [ブレークポイント リスト] をクリックします。あるいは、[ブレークポイント] ダイアログ ボックスを開いて [ブレークポイント リスト] リンクをクリックします。

  • すべてのブレークポイントとそれに関連付けられている条件のリストを表示するには、[ブレークポイント] タブを選択します。

  • データとメッセージの値を調べるには、[監視] タブを選択します。詳細については、ブレークポイントと監視ウィンドウでのデータの表示を参照してください。

ヒント

Stateflow チャート内のブレークポイントは、Simulink® エディターでブレークポイント リストを使用して管理することもできます。詳細については、信号のブレークポイントを使用したシミュレーションのデバッグ (Simulink)を参照してください。

ブレークポイントの無効化と再有効化

関連付けられている条件を削除しないでブレークポイントを無効にするには、ブレークポイント名の横のチェック ボックスをオフにします。たとえば、次のチャートでは upshifting ステートの [During ステート] 上のブレークポイントが無効にされています。

Breakpoints pane of the Stateflow breakpoints and watch window.

グラフィカル オブジェクトのすべてのブレークポイントを無効にした場合、そのブレークポイント バッジの色が赤からグレーに変わります。オブジェクトの少なくとも 1 つのブレークポイントが有効な場合は、ブレークポイント バッジは赤のままです。

1 つのブレークポイントを再度有効にするには、ブレークポイント名の横にあるボックスを選択します。すべてのブレークポイントを無効にするか、再度有効にするには、ウィンドウ上部にあるチェック ボックスをオフまたはオンにします。

ブレークポイントの削除

チャートからブレークポイントを削除するには、ブレークポイントの名前にカーソルを合わせ、名前の右側に表示される [このブレークポイントを削除] アイコンをクリックします。ブレークポイントを削除すると、それに関連付けられている条件も削除されます。

Remove this breakpoint icon in the Stateflow breakpoints and watch window.

ブレークポイントのヒットの表示

[ヒット] 列にはシミュレーションが各ブレークポイントで一時停止した回数が表示されます。ブレークポイントの条件を変更した場合、チャートによってヒットの回数がリセットされます。

ブレークポイントの保存と復元

ブレークポイントは MATLAB セッションの間保持されます。モデルを閉じても、ブレークポイントはブレークポイントと監視ウィンドウに残ります。同じ MATLAB セッション内でモデルを再度開いた場合、すべてのブレークポイントとそれに関連付けられている条件が復元されます。

ブレークポイントと監視データのリストを保存して、その後の MATLAB セッションで再度読み込むことができます。ブレークポイントと監視データのリストのスナップショットを保存するには、ブレークポイントと監視ウィンドウの上部で、[現在のブレークポイントと監視の保存] アイコンをクリックします。スナップショットを復元するには、[ブレークポイントと監視の読み込み] アイコンをクリックします。

関連するトピック