|
From: Paul F. <pa...@so...> - 2025-10-11 11:01:43
|
https://sourceware.org/cgit/valgrind/commit/?id=7068b807905af87729a66d192f7c10247c42212f commit 7068b807905af87729a66d192f7c10247c42212f Author: Paul Floyd <pj...@wa...> Date: Sat Oct 11 13:01:03 2025 +0200 gdbserver doc: add some comments about the invoker implementations. Diff: --- gdbserver_tests/README_DEVELOPERS | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/gdbserver_tests/README_DEVELOPERS b/gdbserver_tests/README_DEVELOPERS index 250c14326b..0a9f2846f6 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, |