ブレークポイント/ウォッチポイントを設定します。
構文
bpadd <options>
指定したアドレス、関数、または <file>
:<line>
にソフトウェアまたはハードウェア ブレークポイントを設定するか、読み出し/書き込みウォッチポイントまたはクロス トリガー ブレークポイントを設定します。
オプション
オプション | 説明 |
---|---|
-addr <breakpoint-address>
|
ブレークポイントを設定するアドレスを指定します。 |
-file <file-name>
|
ブレークポイントを設定するファイルの名前 (<file-name> ) を指定します。 |
-line <line-number>
|
ブレークポイントを設定するファイル内の行番号 (<line-number> ) を指定します。 |
-type <breakpoint-type>
|
ブレークポイントのタイプを指定します。<breakpoint-type> に指定可能な値は、次のとおりです。
auto: 自動。ブレークポイントのタイプが hw_server/TCF エージェントにより自動的に選択されます。これがデフォルトです。hw: ハードウェア ブレークポイント。sw: ソフトウェア ブレークポイント。 |
-mode <breakpoint-mode>
|
ブレークポイントをトリガーするアクセス モードを指定します。<breakpoint-mode> は次の値のビット単位の OR にできます。0x1 はブレークポイント位置からの読み出しでトリガーされます。0x2 は、ブレークポイント位置への書き込みでトリガーされます。0x4 は、ブレークポイント位置での命令実行によってトリガーされます。これは、行とアドレスのブレークポイントのデフォルトです。0x8 は、ブレークポイント位置でのデータ変更 (明示的な書き込みではない) でトリガーされます。 |
-enable <mode>
|
ブレークポイントの初期イネーブル ステートを指定します。<mode> が 0 の場合はブレークポイントはディスエーブルになり、それ以外の場合はブレークポイントはイネーブルになります。デフォルトはオンです。 |
-ct-input <list> -ct-output <list>
|
入力および出力クロス トリガーを指定します。<list> はクロス トリガー ピンを識別する番号のリストです。Zynq では、0 ~ 7 はコア 0 の CTI、8 ~ 15 はコア 1 の CTI、16 ~ 23 は CTI ETB および TPIU、24 ~ 31 は FTM の CTI です。 |
-skip-on-step <value>
|
ステップ実行でのトリガー動作を指定します。このオプションは、クロス トリガー ブレークポイントに対してのみ、ブレークポイントの入力として DBGACK が使用される場合にのみ適用されます。0: コアが停止するたびにトリガーします (デフォルト)。1: コードのブレークポイントをステップ オーバーではトリガーしません。2: ステップ実行ではトリガーしません。 |
-properties <dict>
|
アドバンス ブレークポイント プロパティを指定します。 |
-meta-data <dict>
|
アドバンス ブレークポイント プロパティのメタデータを指定します。 |
-target-id <id>
|
ブレークポイントを設定するターゲット ID を指定します。<id> を all にすると、すべてのターゲットにブレークポイントを設定できます。このオプションを指定しない場合、targets コマンドで選択したアクティブ ターゲットにブレークポイントが設定されます。アクティブ ターゲットがない場合は、ブレークポイントはすべてのターゲットに設定されます。 |
-temp
|
ブレークポイントは、一度トリガーされると削除されます。 |
-skip-prologue
|
関数ブレークポイントの場合、ブレークポイントを設定する間、関数プロローグがスキップされます。 |
注記
- ブレークポイントは、hw_server/TCF エージェントに接続する前に XSDB で設定できます。ブレークポイントを設定するときにアクティブ ターゲットがない場合は、ブレークポイントはすべてのターゲットに設定されます。アクティブ ターゲットがない場合は、ブレークポイントはすべてのターゲットに設定されます。target-id オプションを使用すると、特定のターゲットまたはすべてのターゲットにブレークポイントを設定できます。ブレークポイントを設定するアドレスまたはファイルと行数を指定する場合は、-addr、-file、または -line オプションを使用する必要はありません。アドレスを指定する場合は、引数としてほかのオプションの後に指定します。ファイルと行数を指定する場合は、
<file>
:<line>
という形式で、引数としてほかのオプションの後に指定します。
戻り値
ブレークポイント ID が返されるか、無効なターゲット ID が指定された場合はエラーが返されます。
例
bpadd -addr 0x100000
アドレス 0x100000 にブレークポイントを設定します。ブレークポイントのタイプは hw_server/TCF エージェントにより自動的に選択されます。
bpadd -addr &main
main 関数にブレークポイントを設定します。ブレークポイントのタイプは hw_server/TCF エージェントにより自動的に選択されます。
bpadd -file test.c -line 23 -type hw
test.c ファイルの 23 行目にハードウェア ブレークポイントを設定します。
bpadd -target-id all 0x100
すべてのターゲットでアドレス 0x100 にブレークポイントを設定します。
bpadd -target-id 2 test.c:23
ターゲット 2 で test.c ファイルの 23 行目にブレークポイントを設定します。
bpadd -addr &fooVar -type hw -mode 0x3
変数 fooVar に読み出し/書き込みウォッチポイントを設定します。
bpadd -ct-input 0 -ct-output 8
Zynq のコア 0 が停止したときにコア 1 を停止するクロス トリガーを設定します。