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);
DESCRIPTION
- The i386_clr_watch() function will disable the indicated
- watch point
within the specified debug register set. - The i386_set_watch() function will set up the specified de
- bug registers
as indicated by the arguments. The watchnum argument speci - fies 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. The watchaddr argument - 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 pro - cess.
RETURN VALUES
- The i386_clr_watch() function returns 0 on success, or -1 if
- watchnum is
invalid (not in the range of 0-3). - The i386_set_watch() function will return the watchnum argu
- ment, or the
watchnum actually 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 ALSO
AUTHORS
- This man page was written by Brian S. Dean.
- BSD August 24, 2000