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

Andrew Burgess
2020-06-19T08:03:20Z

* Sandra Loosemore <sandra@codesourcery.com> [2020-06-18 20:18:18 -0600]:

> On 6/18/20 3:43 AM, Andrew Burgess wrote:
> > * Sandra Loosemore <sandra@codesourcery.com> [2020-06-16 15:08:59 -0600]:
> >
> > > 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:
> >
> > OK, but...
> >
> > Please bear with me, I don't have a nios2 tool chain to hand, but...
> >
> > In nios2-tdep.c, there is no call to set_gdbarch_print_registers_info,
> > which means (from gdbarch.c) that nios2 will use
> > default_print_registers_info.
> >
> > Now if we look in infcmd.c at both default_print_registers_info and
> > registers_info, then we see that if a user says:
> >
> > (gdb) info registers
> >
> > then they will be asking which registers are in the general_reggroup.
> >
> > Now, nios can optionally use a remote target-description (from
> > nios2_gdbarch_init), so, lets for now assume no target description. I
> > see no call to set_gdbarch_register_reggroup_p for nios2, which means
> > we are going to be using default_register_reggroup_p, which if we
> > inspect (in reggroups.c) we'll see does place some registers into the
> > general group.
> >
> > Now, does this matter? The reggroup name is never printed anywhere, we
> > just see a set of random registers?
> >
> > But it is annoying that the user is not easily able to say:
> >
> > (gdb) info registers general
> >
> > and get the same output.
> >
> > If we look at how other targets deal with this most of them manually
> > add at least some sub-set of the default register groups to their
> > architectures set of register groups as part of their _gdbarch_init
> > routine.
> >
> > My gut instinct here is that this is what nios2 should be doing (and
> > maybe arm too).
> >
> > It does seem odd that there's no central "add-the-default-reggroups"
> > type routine that targets can or should call.
>
> OK. How about I commit the other two pieces of the patch (which seem like
> genuine bugs in the testcase), and treat this one as uncovering a bug in the
> implementation instead of just an inappropriate x86-specific assumption
> wired into the testcase?

That sounds good to me.

Thanks,
Andrew