gdb: run 'maint selftest' with an executable loaded
authorAndrew Burgess <andrew.burgess@embecosm.com>
Thu, 20 May 2021 13:09:22 +0000 (14:09 +0100)
committerAndrew Burgess <andrew.burgess@embecosm.com>
Tue, 1 Jun 2021 09:02:49 +0000 (10:02 +0100)
commitb97eff8ffac51061413437ed3fe9b3a12f136cd4
tree228dd89afb6ce6d6d6bd131340100c12788ba207
parent9b715c68e84d93d6671fac661cad391970462ffb
gdb: run 'maint selftest' with an executable loaded

I spotted that 'maint selftest' with an executable loaded into GDB,
would (when GDB was compiled for all targets) crash GDB.  I fixed this
with a commit to bfd:

  commit 427e4066afd13d1bf52c849849475f536e285d66
  Date:   Thu May 20 09:16:41 2021 +0100

      gdb/bfd: avoid crash when architecture is forced to csky or riscv

However, this issue was not spotted as we currently only run 'maint
selftest' without an executable loaded.

This commit extends the testsuite to run 'maint selftest' both with
and without an executable loaded into GDB.

Currently, when no executable is loaded into GDB all of the selftest
pass (i.e. the fail count is 0), however, when running with an
executable loaded, I am seeing 1 failure (on an x86-64 GNU/Linux
host).

This failure is from the ARM disassembler tests, it appears that the
disassembler somehow gets itself into a state where it thinks it is in
thumb mode; when running the same test without an executable loaded
this doesn't happen.

This commit doesn't fix the ARM disassembler issue, but I thought it
was worth adding this anyway, as this will spot if GDB again starts to
crash when 'maint selftest' is run.

gdb/testsuite/ChangeLog:

* gdb.gdb/unittest.c: New file.
* gdb.gdb/unittest.exp: Run with and without a binary file loaded
into GDB.
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.gdb/unittest.c [new file with mode: 0644]
gdb/testsuite/gdb.gdb/unittest.exp