NetBSD/doc/TODO.ptrace

40 lines
2.0 KiB
Plaintext

$NetBSD: TODO.ptrace,v 1.27 2017/03/03 07:11:49 kamil Exp $
Items we (currently) plan to finish in the ptrace(2) field:
- verify ppid of core dump generated with PT_DUMPCORE
it must point to the real parent, not tracer
- adapt OpenBSD regress test (regress/sys/ptrace/ptrace.c) for the ATF context
- reiterate over FreeBSD tests and add missing ones if applicable
- add PT_DUMPCORE tests in the ATF framework
- add ATF tests for PT_WRITE_I and PIOD_WRITE_I - test mprotect restrictions
- add tests for the procfs interface covering all functions available on the
same level as ptrace(2)
- remove 4.4BSD tracing with /proc, restrict /proc to Linux compat, to be
superseded with kevent tracing, the original purpose of /proc debugging is
long gone (performance issues with PT_WRITE_* and PT_READ_*)
- research kevent support for tracing a process over a file descriptor,
this means alternative to wait(2)-based events with passing events over the
kqueue API - signal handlers are global per application and they clash with
GUI toolkits (and perhaps other libraries) - this is long term wishlist in
GDB for Linux - the current approach is to fork and debug through GDB remote
protocol (this is how it is done in LLDB)
- add support for PT_STEP, PT_GETREGS, PT_SETREGS, PT_GETFPREGS, PT_SETFPREGS
in all ports
- add proper implementation of PTRACE_VFORK for vfork(2)-like events
- add ATF tests for SIGCHLD
- research support PT_SYSCALL & PT_STEP combined like in Linux
- fix more calls for netbsd32 compat
- research ipkdb(4)
- research kgdb(4)
- check 64-bit debugger on 64-bit kernel tracing capabilities of 32-bit tracee
- GDB Remote Protocol expects a case with a step with a signal to be sent,
this is currently unsupported on NetBSD
- support QPassSignals (PT_SET_SIGPASS/PT_GET_SIGPASS) in the kernel, a way to
stop routing a set of signals to tracer as they are uninteresting - GDB and
LLDB expect this feature
and of course: fix as many bugs as possible.
Features in ELF, DWARF, CTF, DTrace are out of scope of the above list.