From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 24266 invoked by alias); 6 Jul 2004 17:10:46 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 24212 invoked from network); 6 Jul 2004 17:10:45 -0000 Received: from unknown (HELO mx1.redhat.com) (66.187.233.31) by sourceware.org with SMTP; 6 Jul 2004 17:10:45 -0000 Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.12.10/8.12.10) with ESMTP id i66HAie1011569 for ; Tue, 6 Jul 2004 13:10:44 -0400 Received: from zenia.home.redhat.com (porkchop.devel.redhat.com [172.16.58.2]) by int-mx1.corp.redhat.com (8.11.6/8.11.6) with ESMTP id i66HAg015645; Tue, 6 Jul 2004 13:10:43 -0400 To: Daniel Jacobowitz Cc: Andrew Cagney , gdb-patches@sources.redhat.com Subject: Re: RFA: make sim interface use gdbarch methods for collect/supply References: <20040630155329.GA19452@nevyn.them.org> <20040701024822.GA5875@nevyn.them.org> <20040701173102.GA14843@nevyn.them.org> <20040701184832.GA18339@nevyn.them.org> <40E581BD.6010405@gnu.org> <20040706153826.GB11822@nevyn.them.org> From: Jim Blandy Date: Tue, 06 Jul 2004 17:10:00 -0000 In-Reply-To: <20040706153826.GB11822@nevyn.them.org> Message-ID: User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.3 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-SW-Source: 2004-07/txt/msg00045.txt.bz2 Daniel Jacobowitz writes: > On Fri, Jul 02, 2004 at 11:39:41AM -0400, Andrew Cagney wrote: > > >On Thu, Jul 01, 2004 at 01:44:53PM -0500, Jim Blandy wrote: > > > > > >>> > > >>>Daniel Jacobowitz writes: > > >> > > >>>>> GDB won't have to know where to place their contents in the buffer! > > >>>>> That's the point of using a regset. You convert the 'g' packet output > > >>>>> to a binary blob in the obvious way, and then that's your regset. The > > >>>>> target architecture supplies a regset that expects the format provided > > >>>>> by the 'g' packet. Is there some problem with that plan? > > >> > > >>> > > >>>No, regsets are perfect for 'g'. I was thinking of the single- > > >>>register case (all under the assumption that we'd like to restrict > > >>>uses of supply_register and collect_register to regset functions). > > >>>What do you do with, say, the individual registers from your fancy 'T' > > >>>reply? > > > > > > > > >I have no idea. Good question. > > > > (I've attached a few of comments that go with TARGET_OBJECT, check the > > archives for qPart) > > > > For regsets, the ``void *buffer/long length'' pair can be replaced by a > > single ``byte array'' object. > > > > The regset code can then send offset/length xfer requests to that ``byte > > array''. For cores, the byte array would extract the bytes from the > > core file; for ptrace, the byte array would extract the bytes using the > > relevant ptrace call; and for the remote inferior, the request would be > > converted into one or more qPart packets (sending the > > regset/offset/length across the wire). > > > > When it comes to a `T' reply, the remote inferior can push > > regset/offset/length data for parts of the regset buffer that it thinks > > are interesting. > > If I'm interpreting your answer right, it is: "don't do anything about > it, change the remote protocol instead", right? > > A more practical approach would probably be to maintain a mapping of > the remote protocol register numbers to GDB's internal register numbers > in addition to register sets. I don't see any problem with that. What if the remote protocol wants to talk about a 64-bit register, but GDB's raw regcache sees that as two 32-bit registers? A simple number-to-number mapping doesn't do the trick.