Mirror of the gdb mailing list
 help / color / mirror / Atom feed
From: Andrew Cagney <cagney@gnu.org>
To: Alain Magloire <alain@qnx.com>
Cc: Alexiev Dobrin <dalexiev@ti.com>, gdb@sources.redhat.com
Subject: Re: Registry Group
Date: Tue, 04 Jan 2005 20:20:00 -0000	[thread overview]
Message-ID: <41DAFA6C.90104@gnu.org> (raw)
In-Reply-To: <200412201627.LAA00079@smtp.ott.qnx.com>

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.
>  */
> 


       reply	other threads:[~2005-01-04 20:20 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <200412201627.LAA00079@smtp.ott.qnx.com>
2005-01-04 20:20 ` Andrew Cagney [this message]
2004-12-16 16:44 Alexiev, Dobrin
2004-12-18  1:03 ` Andrew Cagney
2004-12-20 16:27   ` Alain Magloire

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=41DAFA6C.90104@gnu.org \
    --to=cagney@gnu.org \
    --cc=alain@qnx.com \
    --cc=dalexiev@ti.com \
    --cc=gdb@sources.redhat.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox