From: Paul Floyd Date: Sat, 11 Oct 2025 11:01:03 +0000 (+0200) Subject: gdbserver doc: add some comments about the invoker implementations. X-Git-Tag: VALGRIND_3_26_0~41 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7068b807905af87729a66d192f7c10247c42212f;p=thirdparty%2Fvalgrind.git gdbserver doc: add some comments about the invoker implementations. --- diff --git a/gdbserver_tests/README_DEVELOPERS b/gdbserver_tests/README_DEVELOPERS index 250c14326..0a9f2846f 100644 --- a/gdbserver_tests/README_DEVELOPERS +++ b/gdbserver_tests/README_DEVELOPERS @@ -30,11 +30,27 @@ if testing with a lower version). Test behaviour with gdb < 7.0 is unknown: some might fail, some might block or loop for a very long time. -Some tests implies to have a vgdb "ptrace invoker" capable. +Some tests imply having the vgdb "ptrace invoker" capability. The prerequisite are established during make regtest (using marker files). Each test verifies the prerequisite using the prereq: line. +The invoker is implemented as follows on the currently supported OSes. + +------------------------------------------------------------ +| Linux | ptrace | vgdb-invoker-ptrace.c | +| FreeBSD | ptrace | vgdb-invoker-freebsd.c | +| Solaris | process control files | vgdb-invoker-solaris.c | +| Darwin | not implemented | vgdb-invoker-none.c | +------------------------------------------------------------ + +The source files are all in coregrind/. ptrace is not part of any +standardised interface like POSIX. That means that the Linux and +FreeBSD implementations are very similar but there are some +differences. Darwin not having an invoker means that it is not possible +to interrupt Valgrind attached to GDB if it hangs. You will need to +kill Valgrind and start again if that happens. + In case of failing tests ------------------------ When executed with a new gdb version and/or depending on the OS version,