1.3.124 rwatch

データシンボルに対してウォッチポイントを設定します。指定したアドレスのメモリで読み出しが行われると、デバッガがターゲットを停止します。

このコマンドは、ウォッチポイントの ID を新しいデバッガ変数 $n に記録します。 n は数値です。ウォッチポイントの動作を削除または変更するには、この変数をスクリプトで使用します。$n が最後または最後から 2 番目のデバッガ変数の場合は、$ または $$ をそれぞれ使用して ID にアクセスできます。

ウォッチポイントは、スカラ値でのみサポートされます

使用可能なウォッチポイントはターゲットによって異なります。gdbserver または undodb-server を使用する Linux アプリケーションのデバッグでは、使用可能なウォッチポイントは Linux カーネル バージョンとコンフィギュレーションによっても異なります。

ウォッチポイントをトリガする命令のアドレスが、PC のレジスタに表示されるアドレスと異なる可能性があります。これはパイプライン効果が原因です。

構文

rwatch [-d] [-p] [-w width] {[filename:]symbol | *address} [vmid number] [if condition]

各項目には以下の意味があります。

-d

ディセーブルされたウォッチポイントを作成します。

-P

ブレークポイントを認識可能な位置に解決できない場合に、 ウォッチポイント 保留ブレークポイントを ウォッチポイント 作成するかを指定します。

-w width
指定されたアドレスで監視する幅をビット単位で指定します。ターゲットによってサポートされている場合、使用できる値は 8、16、32、64 です。このパラメータはオプションです。

データ幅のデフォルト値は以下のとおりです。

  • アドレス 1 つにつき 32 ビットです。
  • データ幅は、シンボルまたは式 (入力されている場合) に応じて異なります。
filename

ファイルを指定します。

symbol

グローバル/静的データシンボルを指定します。配列または構造体に対しては、要素またはメンバを指定する必要があります。

address

アドレスを指定します。 これには、アドレスまたはアドレスを求める式を指定できます。

vmid number

ウォッチポイントを適用する仮想マシン ID (VMID) を指定します。これには、整数または整数を求める式を指定できます。ハイパーバイザ/仮想マシンのデバッグをサポートするターゲットにのみ適用されます。

if condition
ターゲット停止のためにウォッチポイントがトリガされる際に、TRUE と評価される条件を指定します。いくつかの条件付きウォッチポイントを作成できますが、ある条件付きウォッチポイントを有効にした場合、(条件付きかどうかにかかわらず) 他のウォッチポイントを有効にすることはできなくなります。

例 1-127 例

rwatch myVar1                       # myVar1 に読み出し/書き込みウォッチポイントを設定
rwatch *0x80D4                      # アドレス 0x80D4 に読み出し/書き込みウォッチポイントを設定
rwatch myVar1 if myVar1 == 2        # myVar1 に読み出し/書き込みウォッチポイントを設定
                                    # will only be hit if myVar1 evaluates to 2
arwatch myVar1 if $LR & 0xFF == 0x12 # myVar1 に読み出し/書き込みウォッチポイントを設定
                                    # will only be hit if ($LR & 0xFF) evaluates
                                    # to 0x12 when myVar1 is accessed
非機密扱いPDF file icon PDF 版ARM DUI0452ZJ
Copyright © 2010–2016 ARM.All rights reserved.