gdb/riscv: add systemtap support
authorAndrew Burgess <aburgess@redhat.com>
Sat, 18 Mar 2023 15:15:49 +0000 (15:15 +0000)
committerAndrew Burgess <aburgess@redhat.com>
Thu, 23 Mar 2023 07:19:02 +0000 (07:19 +0000)
commit2f79f2e767c167f289d00c02dc43832c0fc2faec
treeecd3f0da859392fd0d542785e77683e6a69ff0b8
parent6891aaf70bb09317138121f534cb84cb5134e89a
gdb/riscv: add systemtap support

This commit is initial support for SystemTap for RISC-V Linux.  The
following two tests exercise SystemTap functionality, and are showing
many failures, which are all fixed by this commit:

  gdb.cp/exceptprint.exp
  gdb.base/stap-probe.exp

One thing I wasn't sure about is if the SystemTap support should be
Linux specific, or architecture specific.  For aarch64, arm, ia64, and
ppc, the SystemTap support seems to libe in the ARCH-linux-tdep.c
file, while for amd64, i386, and s390 the implementation lives in
ARCH-tdep.c.  I have no idea which of these is the better choice -- or
maybe both choices are correct in the right circumstances, and I'm
just not aware of how to choose between them.

Anyway, for this patch I selected riscv-tdep.c (though clearly, moving
the changes to riscv-linux-tdep.c is trivial if anyone thinks that's a
more appropriate location).

The stap-probe.exp file tests immediate, register, and register
indirect operands, all of which appear to be working fine with this
commit.  The generic expression support doesn't appear to be
architecture specific, so I'd expect that to work fine too.
gdb/riscv-tdep.c