From: Jan Kiszka <jan.kiszka@web.de>
To: Daniel Jacobowitz <drow@false.org>
Cc: qemu-devel@nongnu.org, Andreas Schultz <aschultz@warp10.net>,
Paul Brook <paul@codesourcery.com>,
kvm@vger.kernel.org
Subject: Re: [Qemu-devel] Re: gdbstub: packet reply is too long
Date: Fri, 02 Jan 2009 13:53:57 +0100 [thread overview]
Message-ID: <495E0E65.9040205@web.de> (raw)
In-Reply-To: <20081230224302.GA30049@caradoc.them.org>
[-- Attachment #1: Type: text/plain, Size: 1808 bytes --]
Daniel Jacobowitz wrote:
> On Mon, Dec 29, 2008 at 03:58:47PM +0100, Jan Kiszka wrote:
>> Well, in the current gdb design, current_gdbarch is consulted when
>> disassembling the code while target_gdbarch defines the register set
>> that is exchanged with the remote stub.
>
> This is a transitional state. Really, there isn't supposed to be a
> 'current' gdbarch; we're already moving away from it.
>
> Thinking about it some more you may be right about the overall
> solution though, sorry. The target_gdbarch idea is likely to stick
> around for a while. But some work will have to be done if current and
> target architectures have different register sets :-(
I'll start a thread on the gdb list today, CC'ing you. Would be nice if
you could then add more details on what you think would be required to
achieve this.
>
>> I'm pretty sure that the final solution will involve extended x86
>> register sets in order to inform the frontend about the full target CPU
>> state so that it can set the right current_gdbarch automatically.
>
> Isn't everything we need for this in eflags already?
You need CR0.PE to detect if you are in real or protected mode. And then
you need GDTR/LDTR to find the descriptor CS is pointing at, parsing it
to detect if you are running 16, 32 or 64 bit code (by default). Those
extensions would also be useful in order to decode memory addresses in
case descriptor.base != 0 (or if it's CS >> 4, ie. you are in real
mode). We have some usable patches for this @work, at least for 16 vs.
32 bit. But it's clear that more work is needed to get things upstream
and we should first agree on how things should be done there, e.g. how
to extend the register set and how to communicate that extension between
backend and frontend.
Jan
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 257 bytes --]
next prev parent reply other threads:[~2009-01-02 12:54 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-12-20 12:42 gdbstub: packet reply is too long Andreas Schultz
2008-12-20 15:49 ` Jan Kiszka
2008-12-20 20:35 ` [Qemu-devel] " Paul Brook
2008-12-20 21:00 ` Jan Kiszka
2008-12-20 21:03 ` Paul Brook
2008-12-20 21:22 ` Jan Kiszka
2008-12-20 21:34 ` Paul Brook
2008-12-20 21:55 ` Jan Kiszka
2008-12-20 22:08 ` Paul Brook
2008-12-20 22:34 ` Jan Kiszka
2008-12-20 22:46 ` Paul Brook
2008-12-20 23:44 ` Jan Kiszka
2008-12-26 23:30 ` Daniel Jacobowitz
2008-12-29 14:58 ` Jan Kiszka
2008-12-30 22:43 ` [Qemu-devel] " Daniel Jacobowitz
2009-01-02 12:53 ` Jan Kiszka [this message]
2009-01-03 1:53 ` Jamie Lokier
2009-01-04 13:50 ` Jan Kiszka
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=495E0E65.9040205@web.de \
--to=jan.kiszka@web.de \
--cc=aschultz@warp10.net \
--cc=drow@false.org \
--cc=kvm@vger.kernel.org \
--cc=paul@codesourcery.com \
--cc=qemu-devel@nongnu.org \
/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.