From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 6318 invoked by alias); 4 Jan 2005 20:20:19 -0000 Mailing-List: contact gdb-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sources.redhat.com Received: (qmail 6270 invoked from network); 4 Jan 2005 20:20:11 -0000 Received: from unknown (HELO mx1.redhat.com) (66.187.233.31) by sourceware.org with SMTP; 4 Jan 2005 20:20:11 -0000 Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.12.11/8.12.11) with ESMTP id j04KKAfD026788 for ; Tue, 4 Jan 2005 15:20:10 -0500 Received: from localhost.redhat.com (vpn50-80.rdu.redhat.com [172.16.50.80]) by int-mx1.corp.redhat.com (8.11.6/8.11.6) with ESMTP id j04KKAr32115; Tue, 4 Jan 2005 15:20:10 -0500 Received: from [127.0.0.1] (localhost.localdomain [127.0.0.1]) by localhost.redhat.com (Postfix) with ESMTP id 4A1E57D79; Tue, 4 Jan 2005 15:19:58 -0500 (EST) Message-ID: <41DAFA6C.90104@gnu.org> Date: Tue, 04 Jan 2005 20:20:00 -0000 From: Andrew Cagney User-Agent: Mozilla Thunderbird 0.8 (X11/20041020) MIME-Version: 1.0 To: Alain Magloire Cc: Alexiev Dobrin , gdb@sources.redhat.com Subject: Re: Registry Group References: <200412201627.LAA00079@smtp.ott.qnx.com> In-Reply-To: <200412201627.LAA00079@smtp.ott.qnx.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-SW-Source: 2005-01/txt/msg00028.txt.bz2 Alain Magloire wrote: >>Alexiev, Dobrin wrote: >> >>>I am working with the Eclipse C Development Tools community to add a >>>feature that will group registers in the Register View of Eclipse. >>> >>>Since embedded CPUs have lots of peripheral registers (50-100+) it is >>>getting a burden for the developer to keep scrolling the registry view >>>to find the right register. A grouping will make the user experience way >>>better. >>> >>>Since the IDE is relying on the GDB for most of the device information I >>>was wandering if there is a similar MI/GDB command to obtain the name of >>>the groups and their registers association. >>> >>>In our product we added such command "-data-list-register-groups". The >>>syntax of the command is: >>>-data-list-register-groups >>>^done,register-groups=[{name="r0",group="GRP1"},{name="r8",group="GRP2"} >>>] >> >>Sure! have you looked at the output from: >> (gdb) maint print register-groups >>as it should make a good starting point. >> >>I suspect that the output should be more like: >> ...{name="r0",groups=["grp1","grp2",...]},... >>(the MI syntax police will quickly point out the exact syntax :-). >> > > > I think Alexiev is off to see Santa 'til January .. but Sounds familiar, ran into Santa surfing at bondi. > this is a not from a patch he dropped to the CDT mailing list > it should give you a rough idea of his way of thinking. > The part about a default "Main" group is probably CDT specific > and there for backward compatibility. Right (more recent gdb's use heuristics to guess which register goes where) > /** > * Custom command for requesting the register groups. > * It is not yet in the GDB stream. > * > * -data-list-register-groups > * > * The format of the command is: > * IN:(gdb)-data-list-register-groups > * OUT:^done,register-groups= [{name="r0", group="GRP1"},{name="r8",group="GRP2"}] the first key difference is that a register can be in multiple groups. You can see this in the `maint print register-groups' command. The other potential wart is that groups are either "user" or "internal" (for instance save/restore groups are normally for internal use) - you might want to both query for the list of groups and the register/group mapping. For code, what about refactoring reggroups.c's *_dump methods so that they use ui-out. Andrew > * It is similar of the command: "-data-list-register-values". > * > * The register group names are case sensitive. > * * The register groups appear in the Register View in order they are returns from > * the command "-data-list-register-groups". > * > * The registers appear in the groups in the order they are returned from the > * command "-data-list-register-names". > * The register names are case sensitive. > * > * If the debugger doesn<92>t support the command "-data-list-register-groups" all > * registers are added to the "Main" group. > * If there is a register returned by the command "-data-list-register-names" but not > * in the command "-data-list-register-groups" it is added to the "Main" group. > * The main group itself is added first to the Register view. > * If there is a register returned by the command "-data-list-register-groups" but not in > * the command "-data-list-register-names" the register is ignored. > */ >