Re: [patch] gdb/testsuite: fixes for gdb.xml/tdesc-regs.exp

Sandra Loosemore
2020-06-16T21:09:06Z

On 6/16/20 2:47 PM, Andrew Burgess wrote:

> I'd be interested to know more about which targets don't place any
> registers in the 'general' group. This group is used in
> default_print_registers_info to implement 'info registers', so I'd
> like to see what this particular target has done instead.

nios2, for one. From the original test log for nios2-linux-gnu:

maintenance print reggroups
Group Type
foo user
(gdb) FAIL: gdb.xml/tdesc-regs.exp: maintenance print reggroups

I don't have a mainline build for ARM handy but the failure reproduces
on GDB 9 branch for arm-none-eabi.

This is Abid's original summary of his investigation in 2018:

There are 2 reggroups maintained in the code. One is the
default_groups which is populated in _initialize_reggroup. This group
has 'general' group. So if you do 'maint print reggroups without
loading anything in gdb, you will see 'general' group.

The other group is stored in reggroups_data. This is populated when we
load a target description xml file. So it only has group defined in
xml file. But if has a valid group, then 'maint print reggroups' will
not use default_groups. So that command will not print 'general' group
if xml files did not have any.

For x86, we have slightly different behavior. Its tdep code calls
i386_add_reggroups which add 'general' group to reggroups_data as
well.

So this testcase assumes that 'general' group is always present. This
asumption is true on x86 only not in general. So I have removed it
from the match pattern.

-Sandra