All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH qom-cpu v2 00/42] QOM CPUState, part 11: GDB stub
@ 2013-07-07 18:25 Andreas Färber
  2013-07-07 18:25 ` [Qemu-devel] [PATCH qom-cpu v2 01/42] cpu: Introduce vaddr type Andreas Färber
                   ` (42 more replies)
  0 siblings, 43 replies; 49+ messages in thread
From: Andreas Färber @ 2013-07-07 18:25 UTC (permalink / raw)
  To: qemu-devel
  Cc: Peter Maydell, Anthony Green, Blue Swirl, Max Filippov,
	Michael Walle, Jan Kiszka, Anthony Liguori, Paolo Bonzini,
	Guan Xuetao, Andreas Färber, Aurélien Jarno,
	Richard Henderson

Hello,

This series cleans up gdbstub by changing all its internal CPU state to CPUState
and by moving most target-specific code into the target directories.

Support for m68k, moxie and unicore32 to set the PC via gdbstub is added.

Lightweight subclasses for XtensaCPU are introduced, keeping the XtensaConfig
mechanisms, to stop xtensa from deviating at gdbstub level wrt register count.

I still wonder whether there would be interest in adding a "program-counter"
dynamic property to the CPU, given that a setter has been factored out here?

v2 replaces uint64_t with a new vaddr type, fixes xtensa breakage, adds a patch
replacing GDB_CORE_XML and attempts to make the read/write_register changes
better reviewable. More details below.

Available for testing at:
git://github.com/afaerber/qemu-cpu.git qom-cpu-11.v2
https://github.com/afaerber/qemu-cpu/commits/qom-cpu-11.v2

Regards,
Andreas

v1 -> v2:
* Applied some patches.
* Introduced new vaddr type, name courtesy of PMM.
* Avoided making the TranslationBlock typedef generally available.
* Rebased to avoid env/cpu field in alpha DisasContext (rth).
* Added missing ppc_cpu_get_phys_page_debug assignment.
* Converted two more cpu_get_phys_page_debug()s breaking xtensa (Max).
* Simplified xtensa subclasses by keeping CPUXtensaState::config for now (Max).
* Split up cpu_gdb_{read,write}_register() conversion (rth).
* Appended patch to drop GDB_CORE_XML.

Cc: Anthony Liguori <anthony@codemonkey.ws>
Cc: Blue Swirl <blauwirbel@gmail.com>
Cc: Aurélien Jarno <aurelien@aurel32.net>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Jan Kiszka <jan.kiszka@web.de> (gdbstub)
Cc: Anthony Green <green@moxielogic.com> (moxie)
Cc: Guan Xuetao <gxt@mprc.pku.edu.cn> (unicore32)
Cc: Max Filippov <jcmvbkbc@gmail.com> (xtensa)
Cc: Richard Henderson <rth@twiddle.net>
Cc: Michael Walle <michael@walle.cc> (lm32)
Cc: Peter Maydell <peter.maydell@linaro.org> (vaddr)

Andreas Färber (42):
  cpu: Introduce vaddr type
  cpu: Introduce CPUClass::set_pc() for gdb_set_cpu_pc()
  target-m68k: Implement CPUClass::set_pc()
  target-moxie: Implement CPUClass::set_pc()
  target-unicore32: Implement CPUClass::set_pc()
  cpu: Introduce CPUClass::synchronize_from_tb() for cpu_pc_from_tb()
  cpu: Move singlestep_enabled field from CPU_COMMON to CPUState
  gdbstub: Update gdb_handlesig() and gdb_signalled() Coding Style
  cpu: Change cpu_single_step() argument to CPUState
  kvm: Change kvm_{insert,remove}_breakpoint() argument to CPUState
  gdbstub: Change syscall callback argument to CPUState
  gdbstub: Change gdb_handlesig() argument to CPUState
  gdbstub: Change GDBState::c_cpu to CPUState
  gdbstub: Change gdb_{read,write}_register() argument to CPUState
  cpu: Turn cpu_get_phys_page_debug() into a CPUClass hook
  exec: Change cpu_memory_rw_debug() argument to CPUState
  cpu: Introduce CPUClass::memory_rw_debug() for
    target_memory_rw_debug()
  gdbstub: Change GDBState::g_cpu to CPUState
  cpu: Move gdb_regs field from CPU_COMMON to CPUState
  gdbstub: Change gdb_register_coprocessor() argument to CPUState
  target-xtensa: Introduce XtensaCPU subclasses
  gdbstub: Fix cpu_gdb_{read,write}_register() Coding Style
  gdbstub: Drop dead code in cpu_gdb_{read,write}_register()
  cpu: Introduce CPUState::gdb_num_regs and CPUClass::gdb_num_core_regs
  target-i386: Move cpu_gdb_{read,write}_register()
  target-ppc: Move cpu_gdb_{read,write}_register()
  target-sparc: Move cpu_gdb_{read,write}_register()
  target-arm: Move cpu_gdb_{read,write}_register()
  target-m68k: Move cpu_gdb_{read,write}_register()
  target-mips: Move cpu_gdb_{read,write}_register()
  target-openrisc: Move cpu_gdb_{read,write}_register()
  target-sh4: Move cpu_gdb_{read,write}_register()
  target-microblaze: Move cpu_gdb_{read,write}_register()
  target-cris: Move cpu_gdb_{read,write}_register()
  target-alpha: Move cpu_gdb_{read,write}_register()
  target-s390x: Move cpu_gdb_{read,write}_register()
  target-lm32: Move cpu_gdb_{read,write}_register()
  target-xtensa: Move cpu_gdb_{read,write}_register()
  gdbstub: Replace GET_REG*() macros with gdb_get_reg*() functions
  cpu: Introduce CPUClass::gdb_{read,write}_register()
  target-cris: Factor out CPUClass::gdb_read_register() hook for v10
  cpu: Introduce CPUClass::gdb_core_xml_file for GDB_CORE_XML

 bsd-user/main.c                 |   10 +-
 cpu-exec.c                      |   10 +-
 cpus.c                          |    6 +-
 disas.c                         |    4 +-
 exec.c                          |   36 +-
 gdbstub.c                       | 1616 ++++-----------------------------------
 hw/i386/kvmvapic.c              |   78 +-
 hw/xtensa/xtensa_lx60.c         |    8 +-
 hw/xtensa/xtensa_sim.c          |   10 +-
 include/exec/cpu-all.h          |   14 +-
 include/exec/cpu-defs.h         |    3 -
 include/exec/gdbstub.h          |   51 +-
 include/exec/softmmu-semi.h     |   18 +-
 include/qom/cpu.h               |  122 +--
 include/sysemu/kvm.h            |    4 +-
 kvm-all.c                       |   12 +-
 kvm-stub.c                      |    4 +-
 linux-user/main.c               |   35 +-
 linux-user/signal.c             |    3 +-
 monitor.c                       |    2 +-
 qom/cpu.c                       |   22 +
 stubs/Makefile.objs             |    1 +
 stubs/gdbstub.c                 |    5 +
 target-alpha/Makefile.objs      |    1 +
 target-alpha/cpu-qom.h          |    3 +
 target-alpha/cpu.c              |   18 +-
 target-alpha/cpu.h              |    5 -
 target-alpha/gdbstub.c          |   93 +++
 target-alpha/helper.c           |    5 +-
 target-alpha/translate.c        |    3 +-
 target-arm/Makefile.objs        |    1 +
 target-arm/arm-semi.c           |   10 +-
 target-arm/cpu-qom.h            |    5 +
 target-arm/cpu.c                |   17 +-
 target-arm/cpu.h                |    5 -
 target-arm/gdbstub.c            |  102 +++
 target-arm/helper.c             |   15 +-
 target-arm/translate.c          |    7 +-
 target-cris/Makefile.objs       |    1 +
 target-cris/cpu-qom.h           |    6 +
 target-cris/cpu.c               |   19 +
 target-cris/cpu.h               |    4 -
 target-cris/gdbstub.c           |  130 ++++
 target-cris/helper.c            |    7 +-
 target-cris/translate.c         |    7 +-
 target-i386/Makefile.objs       |    1 +
 target-i386/cpu-qom.h           |    5 +
 target-i386/cpu.c               |   22 +-
 target-i386/cpu.h               |    5 -
 target-i386/gdbstub.c           |  231 ++++++
 target-i386/helper.c            |   12 +-
 target-i386/kvm.c               |   20 +-
 target-i386/translate.c         |    5 +-
 target-lm32/Makefile.objs       |    1 +
 target-lm32/cpu-qom.h           |    3 +
 target-lm32/cpu.c               |   16 +-
 target-lm32/cpu.h               |    5 -
 target-lm32/gdbstub.c           |   92 +++
 target-lm32/helper.c            |    6 +-
 target-lm32/translate.c         |    7 +-
 target-m68k/Makefile.objs       |    1 +
 target-m68k/cpu-qom.h           |    3 +
 target-m68k/cpu.c               |   15 +
 target-m68k/cpu.h               |    5 -
 target-m68k/gdbstub.c           |   75 ++
 target-m68k/helper.c            |    5 +-
 target-m68k/m68k-semi.c         |    5 +-
 target-m68k/translate.c         |    7 +-
 target-microblaze/Makefile.objs |    1 +
 target-microblaze/cpu-qom.h     |    3 +
 target-microblaze/cpu.c         |   16 +-
 target-microblaze/cpu.h         |    5 -
 target-microblaze/gdbstub.c     |   56 ++
 target-microblaze/helper.c      |    4 +-
 target-microblaze/translate.c   |    8 +-
 target-mips/Makefile.objs       |    1 +
 target-mips/cpu-qom.h           |    3 +
 target-mips/cpu.c               |   34 +-
 target-mips/cpu.h               |    7 -
 target-mips/gdbstub.c           |  155 ++++
 target-mips/helper.c            |    7 +-
 target-mips/translate.c         |   11 +-
 target-moxie/cpu.c              |   13 +-
 target-moxie/cpu.h              |    6 +-
 target-moxie/helper.c           |   11 +-
 target-moxie/translate.c        |    5 +-
 target-openrisc/Makefile.objs   |    1 +
 target-openrisc/cpu.c           |   16 +-
 target-openrisc/cpu.h           |    8 +-
 target-openrisc/gdbstub.c       |   83 ++
 target-openrisc/mmu.c           |    5 +-
 target-openrisc/translate.c     |    7 +-
 target-ppc/Makefile.objs        |    1 +
 target-ppc/cpu-qom.h            |    3 +
 target-ppc/cpu.h                |    5 -
 target-ppc/gdbstub.c            |  131 ++++
 target-ppc/mmu_helper.c         |    4 +-
 target-ppc/translate.c          |    8 +-
 target-ppc/translate_init.c     |   35 +-
 target-s390x/Makefile.objs      |    1 +
 target-s390x/cpu-qom.h          |    3 +
 target-s390x/cpu.c              |   14 +
 target-s390x/cpu.h              |    5 -
 target-s390x/gdbstub.c          |   88 +++
 target-s390x/helper.c           |    5 +-
 target-s390x/translate.c        |    5 +-
 target-sh4/Makefile.objs        |    1 +
 target-sh4/cpu-qom.h            |    3 +
 target-sh4/cpu.c                |   23 +
 target-sh4/cpu.h                |    6 -
 target-sh4/gdbstub.c            |  146 ++++
 target-sh4/helper.c             |    5 +-
 target-sh4/translate.c          |    8 +-
 target-sparc/Makefile.objs      |    1 +
 target-sparc/cpu-qom.h          |    3 +
 target-sparc/cpu.c              |   34 +-
 target-sparc/cpu.h              |   11 +-
 target-sparc/gdbstub.c          |  208 +++++
 target-sparc/mmu_helper.c       |   22 +-
 target-sparc/translate.c        |    3 +-
 target-unicore32/cpu-qom.h      |    1 +
 target-unicore32/cpu.c          |   11 +
 target-unicore32/cpu.h          |    5 -
 target-unicore32/softmmu.c      |    7 +-
 target-unicore32/translate.c    |    7 +-
 target-xtensa/Makefile.objs     |    1 +
 target-xtensa/cpu-qom.h         |    6 +
 target-xtensa/cpu.c             |   40 +-
 target-xtensa/cpu.h             |    5 -
 target-xtensa/gdbstub.c         |  109 +++
 target-xtensa/helper.c          |   47 +-
 target-xtensa/translate.c       |    7 +-
 target-xtensa/xtensa-semi.c     |   14 +-
 133 files changed, 2701 insertions(+), 1892 deletions(-)
 create mode 100644 stubs/gdbstub.c
 create mode 100644 target-alpha/gdbstub.c
 create mode 100644 target-arm/gdbstub.c
 create mode 100644 target-cris/gdbstub.c
 create mode 100644 target-i386/gdbstub.c
 create mode 100644 target-lm32/gdbstub.c
 create mode 100644 target-m68k/gdbstub.c
 create mode 100644 target-microblaze/gdbstub.c
 create mode 100644 target-mips/gdbstub.c
 create mode 100644 target-openrisc/gdbstub.c
 create mode 100644 target-ppc/gdbstub.c
 create mode 100644 target-s390x/gdbstub.c
 create mode 100644 target-sh4/gdbstub.c
 create mode 100644 target-sparc/gdbstub.c
 create mode 100644 target-xtensa/gdbstub.c

-- 
1.8.1.4

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

end of thread, other threads:[~2013-07-22 14:48 UTC | newest]

Thread overview: 49+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-07-07 18:25 [Qemu-devel] [PATCH qom-cpu v2 00/42] QOM CPUState, part 11: GDB stub Andreas Färber
2013-07-07 18:25 ` [Qemu-devel] [PATCH qom-cpu v2 01/42] cpu: Introduce vaddr type Andreas Färber
2013-07-15 14:46   ` Peter Maydell
2013-07-22 14:48     ` Andreas Färber
2013-07-07 18:25 ` [Qemu-devel] [PATCH qom-cpu v2 02/42] cpu: Introduce CPUClass::set_pc() for gdb_set_cpu_pc() Andreas Färber
2013-07-07 18:25 ` [Qemu-devel] [PATCH qom-cpu v2 03/42] target-m68k: Implement CPUClass::set_pc() Andreas Färber
2013-07-07 18:25 ` [Qemu-devel] [PATCH qom-cpu v2 04/42] target-moxie: " Andreas Färber
2013-07-07 18:25 ` [Qemu-devel] [PATCH qom-cpu v2 05/42] target-unicore32: " Andreas Färber
2013-07-07 18:25 ` [Qemu-devel] [PATCH qom-cpu v2 06/42] cpu: Introduce CPUClass::synchronize_from_tb() for cpu_pc_from_tb() Andreas Färber
2013-07-07 18:25 ` [PATCH qom-cpu v2 07/42] cpu: Move singlestep_enabled field from CPU_COMMON to CPUState Andreas Färber
2013-07-07 18:25   ` [Qemu-devel] " Andreas Färber
2013-07-07 18:25 ` [Qemu-devel] [PATCH qom-cpu v2 08/42] gdbstub: Update gdb_handlesig() and gdb_signalled() Coding Style Andreas Färber
2013-07-07 18:25 ` [Qemu-devel] [PATCH qom-cpu v2 09/42] cpu: Change cpu_single_step() argument to CPUState Andreas Färber
2013-07-07 18:25 ` [PATCH qom-cpu v2 10/42] kvm: Change kvm_{insert,remove}_breakpoint() " Andreas Färber
2013-07-07 18:25   ` [Qemu-devel] [PATCH qom-cpu v2 10/42] kvm: Change kvm_{insert, remove}_breakpoint() " Andreas Färber
2013-07-07 18:26 ` [Qemu-devel] [PATCH qom-cpu v2 11/42] gdbstub: Change syscall callback " Andreas Färber
2013-07-07 18:26 ` [Qemu-devel] [PATCH qom-cpu v2 12/42] gdbstub: Change gdb_handlesig() " Andreas Färber
2013-07-07 18:26 ` [Qemu-devel] [PATCH qom-cpu v2 13/42] gdbstub: Change GDBState::c_cpu " Andreas Färber
2013-07-07 18:26 ` [Qemu-devel] [PATCH qom-cpu v2 14/42] gdbstub: Change gdb_{read, write}_register() argument " Andreas Färber
2013-07-07 18:26 ` [Qemu-devel] [PATCH qom-cpu v2 15/42] cpu: Turn cpu_get_phys_page_debug() into a CPUClass hook Andreas Färber
2013-07-07 18:26 ` [PATCH qom-cpu v2 16/42] exec: Change cpu_memory_rw_debug() argument to CPUState Andreas Färber
2013-07-07 18:26   ` [Qemu-devel] " Andreas Färber
2013-07-07 18:26 ` [Qemu-devel] [PATCH qom-cpu v2 17/42] cpu: Introduce CPUClass::memory_rw_debug() for target_memory_rw_debug() Andreas Färber
2013-07-07 18:26 ` [Qemu-devel] [PATCH qom-cpu v2 18/42] gdbstub: Change GDBState::g_cpu to CPUState Andreas Färber
2013-07-07 18:26 ` [Qemu-devel] [PATCH qom-cpu v2 19/42] cpu: Move gdb_regs field from CPU_COMMON " Andreas Färber
2013-07-07 18:26 ` [Qemu-devel] [PATCH qom-cpu v2 20/42] gdbstub: Change gdb_register_coprocessor() argument " Andreas Färber
2013-07-07 18:26 ` [Qemu-devel] [PATCH qom-cpu v2 21/42] target-xtensa: Introduce XtensaCPU subclasses Andreas Färber
2013-07-07 18:26 ` [Qemu-devel] [PATCH qom-cpu v2 22/42] gdbstub: Fix cpu_gdb_{read, write}_register() Coding Style Andreas Färber
2013-07-07 18:26 ` [Qemu-devel] [PATCH qom-cpu v2 23/42] gdbstub: Drop dead code in cpu_gdb_{read, write}_register() Andreas Färber
2013-07-07 18:26 ` [Qemu-devel] [PATCH qom-cpu v2 24/42] cpu: Introduce CPUState::gdb_num_regs and CPUClass::gdb_num_core_regs Andreas Färber
2013-07-07 18:26 ` [Qemu-devel] [PATCH qom-cpu v2 25/42] target-i386: Move cpu_gdb_{read, write}_register() Andreas Färber
2013-07-07 18:26 ` [Qemu-devel] [PATCH qom-cpu v2 26/42] target-ppc: " Andreas Färber
2013-07-07 18:26 ` [Qemu-devel] [PATCH qom-cpu v2 27/42] target-sparc: " Andreas Färber
2013-07-07 18:26 ` [Qemu-devel] [PATCH qom-cpu v2 28/42] target-arm: " Andreas Färber
2013-07-07 18:26 ` [Qemu-devel] [PATCH qom-cpu v2 29/42] target-m68k: " Andreas Färber
2013-07-07 18:26 ` [Qemu-devel] [PATCH qom-cpu v2 30/42] target-mips: " Andreas Färber
2013-07-07 18:26 ` [Qemu-devel] [PATCH qom-cpu v2 31/42] target-openrisc: " Andreas Färber
2013-07-07 18:26 ` [Qemu-devel] [PATCH qom-cpu v2 32/42] target-sh4: " Andreas Färber
2013-07-07 18:26 ` [Qemu-devel] [PATCH qom-cpu v2 33/42] target-microblaze: " Andreas Färber
2013-07-07 18:26 ` [Qemu-devel] [PATCH qom-cpu v2 34/42] target-cris: " Andreas Färber
2013-07-07 18:26 ` [Qemu-devel] [PATCH qom-cpu v2 35/42] target-alpha: " Andreas Färber
2013-07-07 18:26 ` [Qemu-devel] [PATCH qom-cpu v2 36/42] target-s390x: " Andreas Färber
2013-07-07 18:26 ` [Qemu-devel] [PATCH qom-cpu v2 37/42] target-lm32: " Andreas Färber
2013-07-07 18:26 ` [Qemu-devel] [PATCH qom-cpu v2 38/42] target-xtensa: " Andreas Färber
2013-07-07 18:26 ` [Qemu-devel] [PATCH qom-cpu v2 39/42] gdbstub: Replace GET_REG*() macros with gdb_get_reg*() functions Andreas Färber
2013-07-07 18:26 ` [Qemu-devel] [PATCH qom-cpu v2 40/42] cpu: Introduce CPUClass::gdb_{read, write}_register() Andreas Färber
2013-07-07 18:26 ` [Qemu-devel] [PATCH qom-cpu v2 41/42] target-cris: Factor out CPUClass::gdb_read_register() hook for v10 Andreas Färber
2013-07-07 18:26 ` [Qemu-devel] [PATCH qom-cpu v2 42/42] cpu: Introduce CPUClass::gdb_core_xml_file for GDB_CORE_XML Andreas Färber
2013-07-09 21:03 ` [Qemu-devel] [PATCH qom-cpu v2 00/42] QOM CPUState, part 11: GDB stub Andreas Färber

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.