Registry Group
Andrew Cagney
cagney@gnu.org
Tue Jan 4 20:20:00 GMT 2005
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.
> */
>
More information about the Gdb
mailing list