[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.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]