All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 0/5] Add stub to handle Xfer:siginfo:read query
@ 2024-03-09  3:08 Gustavo Romero
  2024-03-09  3:08 ` [PATCH v3 1/5] gdbstub: Rename back gdb_handlesig Gustavo Romero
                   ` (5 more replies)
  0 siblings, 6 replies; 9+ messages in thread
From: Gustavo Romero @ 2024-03-09  3:08 UTC (permalink / raw)
  To: qemu-devel, richard.henderson
  Cc: alex.bennee, peter.maydell, laurent, philmd, gustavo.romero

Xfer:siginfo:read query is received, usually, when GDB catches a signal
and needs additional info about it, like the si_code and the si_addr, so
GDB can show the user interesting info about the signal. This query can
also be received when an user explicitly asks for more information via
printing GBD's special purpose variable '$_siginfo'.

This series adds the stub to handle Xfer:siginfo:read queries.

To achieve this, it is first necessary to stash the target-specific
siginfo in the gdbstub server state struct when handling a signal, so it
requires modifying the gdb_handlesig function to accept the target's
siginfo struct and its length.

Later, when replying to a Xfer:siginfo:read query (i.e., after a
signal is caught), the query handler utilizes the stashed siginfo to
form the packet for replying to the query.

Finally, a test is added to check if the stub correctly responds to the
query when a simple binary causes a SIGSEGV. Since the si_addr must be
available in the case of a SIGSEGV, the value of si_addr is checked
against the expected faulting address, corresponding to the dereferenced
pointer value in the binary.

v1:
https://lists.gnu.org/archive/html/qemu-devel/2024-03/msg00423.html

v2:
https://lists.gnu.org/archive/html/qemu-devel/2024-03/msg01858.html


Cheers,
Gustavo

Gustavo Romero (5):
  gdbstub: Rename back gdb_handlesig
  linux-user: Move tswap_siginfo out of target code
  gdbstub: Save target's siginfo
  gdbstub: Add Xfer:siginfo:read stub
  tests/tcg: Add multiarch test for Xfer:siginfo:read stub

 bsd-user/main.c                               |  2 +-
 bsd-user/signal.c                             |  5 +-
 gdbstub/gdbstub.c                             |  8 ++++
 gdbstub/internals.h                           |  1 +
 gdbstub/user.c                                | 46 +++++++++++++++++--
 include/gdbstub/user.h                        | 19 +++-----
 linux-user/aarch64/signal.c                   |  2 +-
 linux-user/alpha/signal.c                     |  2 +-
 linux-user/arm/signal.c                       |  2 +-
 linux-user/hexagon/signal.c                   |  2 +-
 linux-user/hppa/signal.c                      |  2 +-
 linux-user/i386/signal.c                      |  6 +--
 linux-user/loongarch64/signal.c               |  2 +-
 linux-user/m68k/signal.c                      |  4 +-
 linux-user/main.c                             |  2 +-
 linux-user/microblaze/signal.c                |  2 +-
 linux-user/mips/signal.c                      |  4 +-
 linux-user/nios2/signal.c                     |  2 +-
 linux-user/openrisc/signal.c                  |  2 +-
 linux-user/ppc/signal.c                       |  4 +-
 linux-user/riscv/signal.c                     |  2 +-
 linux-user/s390x/signal.c                     |  2 +-
 linux-user/sh4/signal.c                       |  2 +-
 linux-user/signal-common.h                    |  2 -
 linux-user/signal.c                           | 15 ++++--
 linux-user/sparc/signal.c                     |  2 +-
 linux-user/xtensa/signal.c                    |  2 +-
 tests/tcg/multiarch/Makefile.target           | 10 +++-
 .../gdbstub/test-qxfer-siginfo-read.py        | 26 +++++++++++
 tests/tcg/multiarch/segfault.c                | 14 ++++++
 30 files changed, 147 insertions(+), 49 deletions(-)
 create mode 100644 tests/tcg/multiarch/gdbstub/test-qxfer-siginfo-read.py
 create mode 100644 tests/tcg/multiarch/segfault.c

-- 
2.34.1



^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2024-03-11 17:21 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-03-09  3:08 [PATCH v3 0/5] Add stub to handle Xfer:siginfo:read query Gustavo Romero
2024-03-09  3:08 ` [PATCH v3 1/5] gdbstub: Rename back gdb_handlesig Gustavo Romero
2024-03-09  3:08 ` [PATCH v3 2/5] linux-user: Move tswap_siginfo out of target code Gustavo Romero
2024-03-09  3:08 ` [PATCH v3 3/5] gdbstub: Save target's siginfo Gustavo Romero
2024-03-11 17:20   ` Richard Henderson
2024-03-09  3:09 ` [PATCH v3 4/5] gdbstub: Add Xfer:siginfo:read stub Gustavo Romero
2024-03-11 17:21   ` Richard Henderson
2024-03-09  3:09 ` [PATCH v3 5/5] tests/tcg: Add multiarch test for " Gustavo Romero
2024-03-11 15:45 ` [PATCH v3 0/5] Add stub to handle Xfer:siginfo:read query Alex Bennée

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.