[PATCH 00/16] Default register groups, and general related cleanup

Andrew Burgess via Gdb-patches
2022-03-31T21:04:56Z

This work started with this thread:

https://sourceware.org/pipermail/gdb-patches/2022-March/187071.html

In which it was discovered that the ppc targets don't add the default
register groups during gdbarch initialisation.

I've run into this problem before, and every time I wonder why the
default register groups aren't added by default in all cases.

So, looked at doing just that.

But the register group management code was feeling a bit crusty, so I
thought I'd clean it up.

Then I hit some bugs, which I figured I'd fix.

Anyway, patch #9 is what I set out to do. Everything else is me
trying to improve the register group handling code.

All feedback welcome.

Thanks,
Andrew

---

Andrew Burgess (16):
gdb: don't try to use readline before it's initialized
gdb: add some const in gdb/reggroups.c
gdb: make gdbarch_register_reggroup_p take a const reggroup *
gdb: switch to using 'const reggroup *' in tui-regs.{c,h}
gdb: use 'const reggroup *' in python/py-registers.c file
gdb: have reggroup_find return a const
gdb/tui: avoid theoretical bug with 'tui reg' command
gdb/tui: fix 'tui reg next/prev' command when data window is hidden
gdb: always add the default register groups
gdb: convert reggroups to use a std::vector
gdb: remove reggroup_next and reggroup_prev
gdb: more 'const' in gdb/reggroups.{c,h}
gdb: make the pre-defined register groups const
gdb: convert reggroup to a C++ class with constructor, etc
gdb: move struct reggroup into reggroups.h header
gdb: update comments throughout reggroups.{c,h} files

gdb/aarch64-tdep.c | 19 +--
gdb/alpha-tdep.c | 2 +-
gdb/amd64-linux-tdep.c | 2 +-
gdb/arc-tdep.c | 17 --
gdb/arm-tdep.c | 2 +-
gdb/completer.c | 8 +-
gdb/csky-tdep.c | 14 +-
gdb/gdbarch-components.py | 2 +-
gdb/gdbarch-gen.h | 4 +-
gdb/gdbarch.c | 2 +-
gdb/i386-linux-tdep.c | 2 +-
gdb/i386-tdep.c | 13 +-
gdb/i386-tdep.h | 2 +-
gdb/ia64-tdep.c | 2 +-
gdb/infcmd.c | 14 +-
gdb/lm32-tdep.c | 13 +-
gdb/m32c-tdep.c | 9 +-
gdb/m68hc11-tdep.c | 13 +-
gdb/mep-tdep.c | 12 +-
gdb/mips-tdep.c | 4 +-
gdb/msp430-tdep.c | 2 +-
gdb/nds32-tdep.c | 32 ++--
gdb/or1k-tdep.c | 14 +-
gdb/python/py-registers.c | 32 ++--
gdb/regcache-dump.c | 9 +-
gdb/reggroups.c | 298 ++++++++++++---------------------
gdb/reggroups.h | 94 +++++++----
gdb/riscv-tdep.c | 18 +-
gdb/rl78-tdep.c | 2 +-
gdb/rs6000-tdep.c | 2 +-
gdb/s390-tdep.c | 2 +-
gdb/sh-tdep.c | 2 +-
gdb/target-descriptions.c | 6 +-
gdb/target-descriptions.h | 2 +-
gdb/testsuite/gdb.tui/regs.exp | 26 +++
gdb/tui/tui-regs.c | 111 +++++++-----
gdb/tui/tui-regs.h | 9 +-
gdb/utils.c | 17 +-
gdb/xtensa-tdep.c | 25 +--
39 files changed, 373 insertions(+), 486 deletions(-)

--
2.25.4