qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] Re: Debugging with paging enabled


From: Daniel Jacobowitz
Subject: Re: [Qemu-devel] Re: Debugging with paging enabled
Date: Wed, 8 Nov 2006 21:24:20 -0500
User-agent: Mutt/1.5.13 (2006-08-11)

On Thu, Nov 09, 2006 at 12:57:29AM +0100, Marcel Kilgus wrote:
> Daniel Jacobowitz wrote:
> >> Leaving that aside, if I do set the breakpoint correctly at virtual
> >> address (e.g.) 0xC0123456 qemu will (correctly I guess) cause an
> >> exception for code offset 0x123456 (as CS base is 0xC0000000). GDB
> >> however then doesn't recognize its own breakpoint as it only remembers
> >> having set one at 0xC0123456, and apparently doesn't translate the
> >> given exception address of CS:0x123456 back to a virtual one.
> > Which segment is it running from at this point?  Qemu may be reporting
> > the wrong address.
> 
> After paging is switched on, all code always runs in the CS that is
> based at 0xC0000000. As I see it qemu reports the address just fine.
> As I wrote in my original mail it only works if I set two breakpoints,
> one at 0x123456 and one at 0xC0123456. Makes sense then, the
> 0xC0123456 triggers the breakpoint exception within qemu and the
> 0x123456 is used by GDB to recognize the offset it gets from qemu.
> It's a mess, really, and probably not qemu's fault.

If qemu is ever sending "0x123456" back to GDB in the scenario you've
described, you can probably get the right behavior by simulating flat
memory: make qemu add the segment base to the pc when it sends it to
gdb.

At this point you're past what I know about i386 though.

-- 
Daniel Jacobowitz
CodeSourcery




reply via email to

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