説明
break コマンドでは、特定のオカレンスにブレークポイントを追加または削除できます。
構文
break <object> <op> <breakPointType> <data>
引数
object
オブジェクトを指定します。指定できるのは、#All、有効なクラス名、または有効なインスタンス名です。
クラスにブレークポイントを設定すると、そのすべてのインスタンスおよびサブインスタンスにブレークポイントが設定されます。
op
操作を指定します。指定できる値は、+、-、add、または remove です。デフォルト値は、add です。
breakPointType
ブレークポイント・タイプを指定します。指定できる値は以下のとおりです。
- instanceCreated - クラスとのみ。このクラス (またはそのサブクラス) の新しいインスタンスが作成されたらブレークする。
- instanceDeleted - インスタンス (クラスのインスタンス) が削除されたらブレークする。
- termination - インスタンス (クラスのインスタンス) が終端コネクターに到達したらブレークする。インスタンスが終端コネクターへの入場以外の方法で削除された場合はブレークしない。
- stateEntered <state name> - 状態名 (state name) が指定されている場合、インスタンス (クラスのインスタンス) がその状態に入場したときにブレークする。状態名が省略されていると、インスタンスが任意の状態に入場したときにブレークする。
- stateExited <state name> - 状態名 (state name) が指定されている場合、インスタンス (クラスのインスタンス) がその状態を退場したときにブレークする。状態名が省略されていると、インスタンスが任意の状態を退場したときにブレークする。
- state <state name> - 状態名 (state name) が指定されている場合、インスタンス (クラスのインスタンス) がその状態を入場または退場したときにブレークする。状態名が省略されていると、インスタンスが任意の状態を入場または退場したときにブレークする。
- relationConnected <relation name> - 関係名 (relation name) が指定されている場合、新しいインスタンスがこのインスタンス (このクラスのインスタンス) の与えられた関係に接続したときにブレークする。関係名が省略されている場合、新しいインスタンスが任意の関係に接続したときにブレークする。
- relationDisconnected <relation name> - 関係名 (relation name) が指定されている場合、インスタンスがこのインスタンス (このクラスのインスタンス) の与えられた関係から削除されたときにブレークする。関係名が省略されている場合、インスタンスが任意の関係から削除されたときにブレークする。
- relationCleared <relation name> - 関係名が指定されている場合、このインスタンス (このクラスのインスタンス) の与えられた関係がクリアされたときにブレークする。関係名が省略されている場合、任意の関係がクリアされたときにブレークする。
- relation <relation name> - 関係名が指定されている場合、新しいインスタンスがこの関係に接続されるとき、インスタンスが関係から削除されたとき、またはこのインスタンス (このクラスのインスタンス) の関係がクリアされたときにブレークする。関係名が省略されている場合、新しいインスタンスが任意の関係に接続したとき、任意の関係からインスタンスが削除されたとき、または任意の関係がクリアされたときにブレークする。
- attribute - インスタンスのみ。与えられたインスタンスの任意の属性が変更されたときにブレークする。ブレークポイントを設定すると、インスタンスの属性値のコピーが保管されます。このコピーに対して任意の属性値が変わるとブレークが起きます。ブレーク後、新しい (変更された) 値のコピーが参照用に保持されます。
- gotControl - インスタンス (クラスのインスタンス) が制御を得るとブレークする。これは、インスタンスがそのユーザー定義操作の 1 つの実行を開始したとき、インスタンスがイベントに応答したとき、またはインスタンスが別のオブジェクトから呼び出した操作が終了し、実行を再開するときに起こります。
- lostControl - インスタンス (クラスのインスタンス) が制御を失うとブレークする。つまり、操作の実行を終了して戻るとき、イベントに応答し終わったとき、または別のオブジェクトの操作を呼び出すとき。
- operation <operation name> - 操作名 (operation name) が指定されている場合、インスタンス (クラスのインスタンス) が指定された操作の実行を開始したときにブレークする。操作名が省略されている場合、インスタンスがその任意のユーザー定義操作の実行を開始したときにブレークする。
- operationReturned <operation name> - 操作名 (operation name) が指定されている場合、インスタンス (クラスのインスタンス) が指定された操作の実行から戻ったときにブレークする。操作名が省略されている場合、インスタンスがその任意のユーザー定義操作の実行から戻ったときにブレークする。
- eventSent <event name> - イベント名 (event name) が指定されている場合、インスタンス (クラスのインスタンス) が指定されたイベントを送信したときにブレークする。イベント名が省略されていると、インスタンスが任意のイベントを送信したときにブレークする。
- eventReceived <event name> - イベント名 (event name) が指定されている場合、インスタンス (クラスのインスタンス) が指定されたイベントを受信したときにブレークする。イベント名が省略されていると、インスタンスが任意のイベントを受信したときにブレークする。
- all - すべてのブレークポイントを示す。このキーワードは、すべてのブレークポイントを削除するときのみ使用できます。
例えば、以下のコマンドは B[5] のすべてのブレークポイントを削除します。break B[5] - all
以下のコマンドは、アニメーションからすべてのブレークポイントを削除します。
break #all - all
data
これはコンテキストに依存します。breakPointTypeを参照してください。データを取るブレークポイントは、かぎ括弧で囲んでデータ・パラメーターを示しています。
一部のオカレンスにブレークポイントを設定すると、そのオカレンスが発生すると実行が停止します。例えば、以下のコマンドでは、B[2] が状態 ROOT.S1 に入場すると、実行が停止します。
break B[2] stateEntered ROOT.S1
ブレークポイントの保存
ブレークポイントを保存するには、ファイル (例えば、myBreakPoints.cfg) に書き込みます。保存した後は、次回アプリケーションを実行するときに、以下のコマンドを入力して再挿入できます。
input myBreakPoints.CFG