From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MLOuF-00019V-Fz for qemu-devel@nongnu.org; Mon, 29 Jun 2009 18:00:55 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MLOuC-00017l-20 for qemu-devel@nongnu.org; Mon, 29 Jun 2009 18:00:55 -0400 Received: from [199.232.76.173] (port=48127 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MLOuB-00017i-SC for qemu-devel@nongnu.org; Mon, 29 Jun 2009 18:00:51 -0400 Received: from mail2.shareable.org ([80.68.89.115]:55297) by monty-python.gnu.org with esmtps (TLS-1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1MLOuB-00070O-8z for qemu-devel@nongnu.org; Mon, 29 Jun 2009 18:00:51 -0400 Date: Mon, 29 Jun 2009 23:00:45 +0100 From: Jamie Lokier Subject: Re: [Qemu-devel] Re: [PATCH 4/4] gdbstub: x86: Switch 64/32 bit registers dynamically Message-ID: <20090629220044.GB7761@shareable.org> References: <20090627075350.13376.17936.stgit@mchn012c.ww002.siemens.net> <200906291507.05278.paul@codesourcery.com> <4A48CE13.6050800@siemens.com> <200906291543.34071.paul@codesourcery.com> <4A48D579.8000305@siemens.com> <20090629151613.GA5924@caradoc.them.org> <4A48DF6F.1090506@siemens.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4A48DF6F.1090506@siemens.com> List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Jan Kiszka Cc: qemu-devel@nongnu.org, Anthony Liguori , Paul Brook Jan Kiszka wrote: > Daniel Jacobowitz wrote: > > On Mon, Jun 29, 2009 at 04:53:45PM +0200, Jan Kiszka wrote: > >> Just to recall the situation (again, please actually try it): if you > >> have to debug code that switches between 16/32 bit and 64 bit, you > >> _can't_ debug the 16 or 32 bit part as gdb will stumble and fall over > >> qemu sending 64-bit register layout for 16/32 bit code. That is a gdb > >> limitation, but this patch is about dealing with it until it's resolved > >> in gdb. > > > > Remind me why you can't just tell GDB that the target is 64-bit > > despite whatever file you've given it? > > Because gdb mixes up arch capability and current operation mode on x86. > It always tries to disassemble according to the set arch. Moreover, it > will misinterpret the registers as being valid across all 64 bits, not > just 16 or 32. I haven't looked into further side effects, but I bet > there are more. On a 64-bit CPU in 16/32-bit mode, all 64 register bits _are_ valid aren't they? (But not useful, as far as I know. Unless there's a 64-bit equivalent to i386's "big real" modes and such). -- Jamie