[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] Re: [PATCH v5 18/18] gdbstub: x86: Switch 64/32 bit reg
From: |
Paul Brook |
Subject: |
Re: [Qemu-devel] Re: [PATCH v5 18/18] gdbstub: x86: Switch 64/32 bit registers dynamically |
Date: |
Tue, 18 Nov 2008 23:23:51 +0000 |
User-agent: |
KMail/1.9.9 |
On Tuesday 18 November 2008, Jan Kiszka wrote:
> Paul Brook wrote:
> >> The best approach, definitely, would be to teach GDB how to switch the
> >> disassembler mode depending on the thread's (or VCPUs) state. But so
> >> there is neither a mechanism in GDB for this, nor is GDB even aware of
> >> the x86 modes (no tracking of privileged registers). We have some
> >> preliminary patches for this, but they are still far away from GDB
> >> mainline.
> >
> > I'm pretty sure all the infrastructure is there. gdb is able to natively
> > debug 32-bit binaries on a 64-bit host and is able to switch disassembler
> > modes for ARM vs. Thumb.
>
> How is it done on ARM? Maybe that will provide the right pointer for x86.
Anything you have symbols for you know what type of code it is from the
binary. On ARM there's an EABI defined scheme for identifying arm/thumb/data
regions. On x86 the ELF class of the image is probably sufficient.
In the absence of real information gdb falls back to the current CPU mode,
which is a bit in the CPU status register. Exactly which register/bit depends
whether you're talking to an M-profile device. M-profile cores are identified
based on the XML register descriptions. If you don't have an XML capable
target then you don't get to debug M-profile devices.
IIRC There's also a gdb option to override the fallback mode.
Paul
- [Qemu-devel] [PATCH v5 14/18] x86: Dump debug registers, (continued)
- [Qemu-devel] [PATCH v5 14/18] x86: Dump debug registers, Jan Kiszka, 2008/11/17
- [Qemu-devel] [PATCH v5 11/18] Add debug exception hook, Jan Kiszka, 2008/11/17
- [Qemu-devel] [PATCH v5 10/18] Introduce BP_WATCHPOINT_HIT flag, Jan Kiszka, 2008/11/17
- [Qemu-devel] [PATCH v5 18/18] gdbstub: x86: Switch 64/32 bit registers dynamically, Jan Kiszka, 2008/11/17
- Re: [Qemu-devel] [PATCH v5 18/18] gdbstub: x86: Switch 64/32 bit registers dynamically, Anthony Liguori, 2008/11/18
- Re: [Qemu-devel] [PATCH v5 18/18] gdbstub: x86: Switch 64/32 bit registers dynamically, Anthony Liguori, 2008/11/18
- Re: [Qemu-devel] [PATCH v5 18/18] gdbstub: x86: Switch 64/32 bit registers dynamically, Anthony Liguori, 2008/11/18
- [Qemu-devel] Re: [PATCH v5 18/18] gdbstub: x86: Switch 64/32 bit registers dynamically, Jan Kiszka, 2008/11/18
- Re: [Qemu-devel] Re: [PATCH v5 18/18] gdbstub: x86: Switch 64/32 bit registers dynamically, Paul Brook, 2008/11/18
- Re: [Qemu-devel] Re: [PATCH v5 18/18] gdbstub: x86: Switch 64/32 bit registers dynamically, Jan Kiszka, 2008/11/18
- Re: [Qemu-devel] Re: [PATCH v5 18/18] gdbstub: x86: Switch 64/32 bit registers dynamically,
Paul Brook <=
- Re: [Qemu-devel] Re: [PATCH v5 18/18] gdbstub: x86: Switch 64/32 bit registers dynamically, Jan Kiszka, 2008/11/18
- Re: [Qemu-devel] Re: [PATCH v5 18/18] gdbstub: x86: Switch 64/32 bit registers dynamically, Paul Brook, 2008/11/18
- [Qemu-devel] Re: [PATCH v5 18/18] gdbstub: x86: Switch 64/32 bit registers dynamically, Jan Kiszka, 2008/11/19
[Qemu-devel] [PATCH v5 08/18] Remove premature memop TB terminations, Jan Kiszka, 2008/11/17
[Qemu-devel] [PATCH v5 09/18] gdbstub: manage CPUs as threads, Jan Kiszka, 2008/11/17
[Qemu-devel] [PATCH v5 16/18] gdbstub: x86: Refactor register access, Jan Kiszka, 2008/11/17
[Qemu-devel] [PATCH v5 07/18] Restore pc on watchpoint hits, Jan Kiszka, 2008/11/17
[Qemu-devel] [PATCH v5 02/18] Refactor translation block CPU state handling, Jan Kiszka, 2008/11/17