mbox series

[v2,0/5] linux-user/i386: Emulate orig_ax

Message ID 20240912093012.402366-1-iii@linux.ibm.com (mailing list archive)
Headers show
Series linux-user/i386: Emulate orig_ax | expand

Message

Ilya Leoshkevich Sept. 12, 2024, 9:28 a.m. UTC
v1: https://lore.kernel.org/qemu-devel/20240802095942.34565-1-iii@linux.ibm.com/
v1 -> v2: Move orig_ax declaration higher, simplify gdb_write_reg()
          for TARGET_LONG_BITS == 32 (Richard).

Hi,

Currently gdbstub is barely usable with i386-linux-user: GDB cannot
even parse a shared library list, so no symbols are available. This
boils down to unavailability of info proc, which is gated behind
org.gnu.gdb.i386.linux. See amd64_linux_init_abi(); info proc is
enabled by amd64_linux_init_abi_common() -> linux_init_abi().

This series adds orig_ax support to the emulator and gdbstub, and
enables the existing test-proc-mappings.py on i386.

Best regards,
Ilya

Ilya Leoshkevich (5):
  include/exec: Introduce env_cpu_const()
  linux-user/i386: Emulate orig_ax
  target/i386/gdbstub: Factor out gdb_get_reg() and gdb_write_reg()
  target/i386/gdbstub: Expose orig_ax
  tests/tcg: Run test-proc-mappings.py on i386

 configs/targets/i386-linux-user.mak           |   2 +-
 configs/targets/x86_64-linux-user.mak         |   2 +-
 gdb-xml/i386-32bit-linux.xml                  |  11 ++
 gdb-xml/i386-64bit-linux.xml                  |  11 ++
 include/exec/cpu-common.h                     |  13 ++-
 linux-user/elfload.c                          |   6 +-
 linux-user/i386/cpu_loop.c                    |   3 +
 linux-user/qemu.h                             |   4 +
 target/i386/cpu.c                             |   1 +
 target/i386/cpu.h                             |   1 +
 target/i386/gdbstub.c                         | 102 ++++++++++++++----
 .../multiarch/gdbstub/test-proc-mappings.py   |  17 ++-
 12 files changed, 135 insertions(+), 38 deletions(-)
 create mode 100644 gdb-xml/i386-32bit-linux.xml
 create mode 100644 gdb-xml/i386-64bit-linux.xml

Comments

Ilya Leoshkevich Oct. 10, 2024, 9:12 a.m. UTC | #1
On Thu, 2024-09-12 at 11:28 +0200, Ilya Leoshkevich wrote:
> v1:
> https://lore.kernel.org/qemu-devel/20240802095942.34565-1-iii@linux.ibm.com/
> v1 -> v2: Move orig_ax declaration higher, simplify gdb_write_reg()
>           for TARGET_LONG_BITS == 32 (Richard).
> 
> Hi,
> 
> Currently gdbstub is barely usable with i386-linux-user: GDB cannot
> even parse a shared library list, so no symbols are available. This
> boils down to unavailability of info proc, which is gated behind
> org.gnu.gdb.i386.linux. See amd64_linux_init_abi(); info proc is
> enabled by amd64_linux_init_abi_common() -> linux_init_abi().
> 
> This series adds orig_ax support to the emulator and gdbstub, and
> enables the existing test-proc-mappings.py on i386.
> 
> Best regards,
> Ilya
> 
> Ilya Leoshkevich (5):
>   include/exec: Introduce env_cpu_const()
>   linux-user/i386: Emulate orig_ax
>   target/i386/gdbstub: Factor out gdb_get_reg() and gdb_write_reg()
>   target/i386/gdbstub: Expose orig_ax
>   tests/tcg: Run test-proc-mappings.py on i386
> 
>  configs/targets/i386-linux-user.mak           |   2 +-
>  configs/targets/x86_64-linux-user.mak         |   2 +-
>  gdb-xml/i386-32bit-linux.xml                  |  11 ++
>  gdb-xml/i386-64bit-linux.xml                  |  11 ++
>  include/exec/cpu-common.h                     |  13 ++-
>  linux-user/elfload.c                          |   6 +-
>  linux-user/i386/cpu_loop.c                    |   3 +
>  linux-user/qemu.h                             |   4 +
>  target/i386/cpu.c                             |   1 +
>  target/i386/cpu.h                             |   1 +
>  target/i386/gdbstub.c                         | 102 ++++++++++++++--
> --
>  .../multiarch/gdbstub/test-proc-mappings.py   |  17 ++-
>  12 files changed, 135 insertions(+), 38 deletions(-)
>  create mode 100644 gdb-xml/i386-32bit-linux.xml
>  create mode 100644 gdb-xml/i386-64bit-linux.xml

Hi,

I would like to ping this series.
Patches 1-4 have R-b, patch 5 has only A-b.

Best regards,
Ilya