I386_SET_WATCH(3) BSD Library Functions Manual I386_SET_WATCH(3)NAME
i386_clr_watch, i386_set_watch — manage i386 debug register values
LIBRARY
Standard C Library (libc, -lc)
SYNOPSIS
#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);
DESCRIPTIONi386_clr_watch() will disable the indicated watch point within the speci‐
fied debug register set.
i386_set_watch() will set up the specified debug registers as indicated
by the parameters. The watchnum argument specifies which watch register
is used, 0, 1, 2, 3, or -1. If watchnum is -1, a free watch register is
found and used. If there are no free watch registers, an error code of
-1 is returned. Watchaddr specifies the watch address, size specifies
the size in bytes of the area to be watched (1, 2, or 4 bytes), and
access specifies the type of watch point:
DBREG_DR7_EXEC An execution breakpoint.
DBREG_DR7_WRONLY Break only when the watch area is written to.
DBREG_DR7_RDWR Break when the watch area is read from or written
to.
Note that these functions do not actually set or clear breakpoints; they
manipulate the indicated debug register set. You must use ptrace(2) to
retrieve and install the debug register values for a process.
RETURN VALUESi386_clr_watch() returns 0 on success, or -1 if watchnum is invalid (not
in the range of 0-3).
i386_set_watch() will return the watchnum argument, or the watchnum actu‐
ally used in the case that watchnum is -1 on success. On error,
i386_set_watch() will return -1 indicating that the watchpoint could not
be set up because either no more watchpoints are available, or watchnum,
size, or access is invalid.
SEE ALSOptrace(2), procfs(5)AUTHORS
This man page was written by Brian S. Dean.
BSD August 24, 2000 BSD