diff options
author | marcel <marcel@FreeBSD.org> | 2003-08-15 05:40:59 +0000 |
---|---|---|
committer | marcel <marcel@FreeBSD.org> | 2003-08-15 05:40:59 +0000 |
commit | b37a3e34cdfb5be8f3c34d2edf399635a319130a (patch) | |
tree | 5592d3f562e1c67656173d1b0c4060bf2b8cca7e /sys/ia64/include/ptrace.h | |
parent | 77c3cd3d303099ad2d819725741f948ad5ff37d8 (diff) | |
download | FreeBSD-src-b37a3e34cdfb5be8f3c34d2edf399635a319130a.zip FreeBSD-src-b37a3e34cdfb5be8f3c34d2edf399635a319130a.tar.gz |
Introduce two machine specific ptrace(2) requests: PT_GETKSTACK and
PT_SETKSTACK. These requests allow the tracing process to access the
dirty registers of the traced process that are on the kernel stack.
Note that there's currently no way to access the rnat register for
those dirty registers that are not (yet) covered by a nat collection
point. The interface for this is still being slept on.
Also note that implied by these requests is the division of work:
The tracing process has to keep track of where registers are spilled
and is responsible to figure out where the NaT bit of the stacked
registers are at any time during the execution of the traced process.
The kernel provides the interfaces but will not abstract the fact
that the register stack can be split. This model does not follow
the approach taken in Linux where PT_PEEK and PT_POKE deals with
this automagically.
Diffstat (limited to 'sys/ia64/include/ptrace.h')
-rw-r--r-- | sys/ia64/include/ptrace.h | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/sys/ia64/include/ptrace.h b/sys/ia64/include/ptrace.h index 7f4e7db..11e7751 100644 --- a/sys/ia64/include/ptrace.h +++ b/sys/ia64/include/ptrace.h @@ -35,6 +35,12 @@ */ #ifndef _MACHINE_PTRACE_H_ -#define _MACHINE_PTRACE_H_ +#define _MACHINE_PTRACE_H_ -#endif +#define __HAVE_PTRACE_MACHDEP + +/* Fetch/store dirty registers on the kernel stack. */ +#define PT_GETKSTACK (PT_FIRSTMACH + 0) +#define PT_SETKSTACK (PT_FIRSTMACH + 1) + +#endif /* _MACHINE_PTRACE_H_ */ |