mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-06 17:23:56 -06:00
gdbstub: x86: Switch 64/32 bit registers dynamically
Commit 56aebc8916
changed gdbstub in way
that debugging 32 or 16-bit guest code is no longer possible with qemu
for x86_64 guest CPUs. Since that commit, qemu only provides registers
sets for 64-bit, forcing current and foreseeable gdb to also switch its
architecture to 64-bit. And this breaks if the inferior is 32 or 16 bit.
No question, this is a gdb issue. But, as it was confirmed in several
discusssions with gdb people, it is a non-trivial thing to fix. So until
qemu finds a gdb version attach with a rework x86 support, we have to
work around it by switching the register layout as the guest switches
its execution mode between 16/32 and 64 bit.
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
parent
6875204c78
commit
5f30fa18ad
2 changed files with 47 additions and 15 deletions
|
@ -570,10 +570,13 @@ typedef struct {
|
|||
uint64_t mask;
|
||||
} MTRRVar;
|
||||
|
||||
#define CPU_NB_REGS64 16
|
||||
#define CPU_NB_REGS32 8
|
||||
|
||||
#ifdef TARGET_X86_64
|
||||
#define CPU_NB_REGS 16
|
||||
#define CPU_NB_REGS CPU_NB_REGS64
|
||||
#else
|
||||
#define CPU_NB_REGS 8
|
||||
#define CPU_NB_REGS CPU_NB_REGS32
|
||||
#endif
|
||||
|
||||
#define NB_MMU_MODES 2
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue