Oracle Solaris Studio 12.2: dbx コマンドによるデバッグ

特定アドレスへのアクセス時にプログラムを停止する

特定のメモリーアドレスがアクセスされたときにプログラムを停止するには、次のように入力します。


(dbx) stop access mode address-expression [, byte-size-expression]

mode はメモリーのアクセス方法を指定します。次の文字 (複数可) で構成されます。

r

指定したアドレスのメモリーが読み取られたことを示します。

w

メモリーへの書き込みが実行されたことを示します。

x

メモリーが実行されたことを示します。

さらに mode には、次のいずれかの文字も指定することができます。

a

アクセス後にプロセスを停止します (デフォルト)。

b

アクセス前にプロセスを停止します。

いずれの場合も、プログラムカウンタはアクセスしている命令をポイントします。「前」と「後」は副作用を指しています。

address-expression は、その評価によりアドレスを生成できる任意の式です。シンボル式を使用すると、監視される領域のサイズが自動的に推定されます。このサイズは、byte-size-expression を指定することにより、上書されます。シンボルを使用しない、型を持たないアドレス式を使用することもできますが、その場合はサイズを指定する必要があります。

次の例では、メモリーアドレス 0x4762 以降の 4 バイトのいずれかが読み込まれたあとにプログラムが停止します。


(dbx) stop access r 0x4762, 4

次の例では、変数 speed に書き込みが行われる前にプログラムが停止します。


(dbx) stop access wb &speed

stop access コマンドを使用する場合、次の点に注意してください。

access イベントを指定する詳細については、access mode address-expression [, byte-size-expression ]および stop コマンド」を参照してください。