mbox series

[v5,0/3] linux-user: Allow gdbstub to ignore page protection

Message ID 20240131114817.288027-1-iii@linux.ibm.com
Headers show
Series linux-user: Allow gdbstub to ignore page protection | expand

Message

Ilya Leoshkevich Jan. 31, 2024, 11:46 a.m. UTC
v4: https://lists.gnu.org/archive/html/qemu-devel/2024-01/msg05857.html
v4 -> v5: Fix the probe_proc_self_mem vs probe_proc_self_mem() typo.
          Add Alex's R-b and A-b.

v3: https://lists.gnu.org/archive/html/qemu-devel/2024-01/msg02907.html
v3 -> v4: Hide InteractiveConsole behind QEMU_TEST_INTERACTIVE (Alex).
          Probe /proc/self/mem in the PROT_NONE test.

v2: https://lists.gnu.org/archive/html/qemu-devel/2024-01/msg01592.html
v2 -> v3: Add Richard's R-b on [1/3].
          Fix printing the architecture name and the number of failures
          in test_gdbstub.py.
          Patches that need review: [2/3] and [3/3].

v1: https://lists.gnu.org/archive/html/qemu-devel/2024-01/msg01314.html
v1 -> v2: Use /proc/self/mem as a fallback. Handle TB invalidation
          (Richard).
          Test cross-page accesses.

RFC: https://lists.gnu.org/archive/html/qemu-devel/2023-12/msg02044.html
RFC -> v1: Use /proc/self/mem and accept that this will not work
           without /proc.
           Factor out a couple functions for gdbstub testing.
           Add a test.

Hi,

I've noticed that gdbstub behaves differently from gdbserver in that it
doesn't allow reading non-readable pages. This series improves the
situation by using the same mechanism as gdbserver: /proc/self/mem.

Best regards,
Ilya


Ilya Leoshkevich (3):
  linux-user: Allow gdbstub to ignore page protection
  tests/tcg: Factor out gdbstub test functions
  tests/tcg: Add the PROT_NONE gdbstub test

 cpu-target.c                                  | 78 +++++++++++++++----
 tests/guest-debug/run-test.py                 |  7 +-
 tests/guest-debug/test_gdbstub.py             | 60 ++++++++++++++
 tests/tcg/aarch64/gdbstub/test-sve-ioctl.py   | 34 +-------
 tests/tcg/aarch64/gdbstub/test-sve.py         | 33 +-------
 tests/tcg/multiarch/Makefile.target           |  9 ++-
 tests/tcg/multiarch/gdbstub/interrupt.py      | 47 ++---------
 tests/tcg/multiarch/gdbstub/memory.py         | 41 +---------
 tests/tcg/multiarch/gdbstub/prot-none.py      | 36 +++++++++
 tests/tcg/multiarch/gdbstub/registers.py      | 41 ++--------
 tests/tcg/multiarch/gdbstub/sha1.py           | 40 ++--------
 .../multiarch/gdbstub/test-proc-mappings.py   | 39 +---------
 .../multiarch/gdbstub/test-qxfer-auxv-read.py | 37 +--------
 .../gdbstub/test-thread-breakpoint.py         | 37 +--------
 tests/tcg/multiarch/prot-none.c               | 40 ++++++++++
 tests/tcg/s390x/gdbstub/test-signals-s390x.py | 42 +---------
 tests/tcg/s390x/gdbstub/test-svc.py           | 39 +---------
 17 files changed, 247 insertions(+), 413 deletions(-)
 create mode 100644 tests/guest-debug/test_gdbstub.py
 create mode 100644 tests/tcg/multiarch/gdbstub/prot-none.py
 create mode 100644 tests/tcg/multiarch/prot-none.c

Comments

Alex Bennée Feb. 16, 2024, 11:44 a.m. UTC | #1
Ilya Leoshkevich <iii@linux.ibm.com> writes:

> v4: https://lists.gnu.org/archive/html/qemu-devel/2024-01/msg05857.html
> v4 -> v5: Fix the probe_proc_self_mem vs probe_proc_self_mem() typo.
>           Add Alex's R-b and A-b.

I was going to pull this and realised it already went in via Richard's
tcg-next. Did this fix get merged?
Ilya Leoshkevich Feb. 16, 2024, 12:36 p.m. UTC | #2
On Fri, 2024-02-16 at 11:44 +0000, Alex Bennée wrote:
> Ilya Leoshkevich <iii@linux.ibm.com> writes:
> 
> > v4:
> > https://lists.gnu.org/archive/html/qemu-devel/2024-01/msg05857.html
> > v4 -> v5: Fix the probe_proc_self_mem vs probe_proc_self_mem()
> > typo.
> >           Add Alex's R-b and A-b.
> 
> I was going to pull this and realised it already went in via
> Richard's
> tcg-next. Did this fix get merged?
> 

Hi, yes, I submitted it separately and it was merged as:

commit da4038d2da6d3a3d5f86665bd51b2ba49df5d652
Author: Ilya Leoshkevich <iii@linux.ibm.com>
Date:   Wed Jan 31 23:02:18 2024 +0100

    tests/tcg: Fix the /proc/self/mem probing in the PROT_NONE gdbstub
test