EN JA
I386_SET_WATCH(3)
I386_SET_WATCH(3) FreeBSD Library Functions Manual I386_SET_WATCH(3)

名称

i386_clr_watch, i386_set_watchi386 デバッグレジスタ値を管理する

ライブラリ

Standard C Library (libc, -lc)

書式

#include < machine/reg.h>
#include < machine/sysarch.h>

int
i386_clr_watch( int watchnum, struct dbreg *d);

int
i386_set_watch( int watchnum, unsigned int watchaddr, int size, int access, struct dbreg *d);

解説

i386_clr_watch() 関数は、指定されたデバッグレジスタセット内の示された監視ポイントを利用不可能にします。

i386_set_watch() 関数は引数によって示されるように指定されたデバッグレジスタをセットアップします。 watchnum 引数は、0、1、2、3、あるいは-1 でどの監視レジスタが使用されるか明示します。 watchnum が-1 である場合、未使用の監視レジスタを見つけて使用します。未使用の監視レジスタがない場合、-1 のエラーコードが返されます。 watchaddr 引数は監視アドレスを指定します。 size は、監視される (1、2 あるいは 4 バイト) 領域のバイトサイズを指定します。また、 access は、監視ポイントのタイプを指定します。

DBREG_DR7_EXEC   実行ブレークポイント。 
DBREG_DR7_WRONLY  監視領域が書き込まれている時のみブレーク。 
DBREG_DR7_RDWR   監視領域が読み込まれるか、書き込まれる時ブレーク。

これらの関数が実際にブレークポイントを設定またはクリアしないことに注意してください。それらは示されたデバッグレジスタセットを操作します。プロセスのためのデバッグレジスタ値を取り出しインストールするためには ptrace(2) を使用しなければなりません。

戻り値

成功すれば i386_clr_watch() 関数は、0 を返します。エラーの場合、 watchnum が無効 (0-3 の範囲ではない) であることを示す、-1 を返します。指定された watchnum が既に無効にされていたなら、エラーは、返されません。

成功すれば i386_set_watch() 関数は watchnum 引数を返し、指定された watchnum が-1 であった場合には実際に使われる watchnum を返します。エラーの場合、 i386_set_watch() 関数は、監視ポイントがそれ以上利用可能でないか、 watchnum, size あるいは access が無効であるかのどちらかであるので、監視ポイントを確立できなかったことを示す-1 を返します。

関連項目

ptrace(2), procfs(5)

作者

このマニュアルページは、 Brian S. Dean によって書かれました。
August 24, 2000 FreeBSD