From: "Andreas Färber" <afaerber@suse.de>
To: qemu-devel@nongnu.org
Cc: "Peter Maydell" <peter.maydell@linaro.org>,
"Anthony Green" <green@moxielogic.com>,
"Blue Swirl" <blauwirbel@gmail.com>,
"Max Filippov" <jcmvbkbc@gmail.com>,
"Michael Walle" <michael@walle.cc>,
"Jan Kiszka" <jan.kiszka@web.de>,
"Anthony Liguori" <anthony@codemonkey.ws>,
"Paolo Bonzini" <pbonzini@redhat.com>,
"Guan Xuetao" <gxt@mprc.pku.edu.cn>,
"Aurélien Jarno" <aurelien@aurel32.net>,
"Richard Henderson" <rth@twiddle.net>
Subject: Re: [Qemu-devel] [PATCH qom-cpu v2 00/42] QOM CPUState, part 11: GDB stub
Date: Tue, 09 Jul 2013 23:03:35 +0200 [thread overview]
Message-ID: <51DC7AA7.8010406@suse.de> (raw)
In-Reply-To: <1373221591-17091-1-git-send-email-afaerber@suse.de>
Am 07.07.2013 20:25, schrieb Andreas Färber:
> 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.
Needs to be respun to keep find_cpu() around - any comments before I do?
Andreas
>
> 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
>
--
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg
prev parent reply other threads:[~2013-07-09 21:07 UTC|newest]
Thread overview: 49+ messages / expand[flat|nested] mbox.gz Atom feed top
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 ` Andreas Färber [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=51DC7AA7.8010406@suse.de \
--to=afaerber@suse.de \
--cc=anthony@codemonkey.ws \
--cc=aurelien@aurel32.net \
--cc=blauwirbel@gmail.com \
--cc=green@moxielogic.com \
--cc=gxt@mprc.pku.edu.cn \
--cc=jan.kiszka@web.de \
--cc=jcmvbkbc@gmail.com \
--cc=michael@walle.cc \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=rth@twiddle.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.