PowerPC, fix gdb.reverse/finish-reverse-bkpt.exp and gdb.reverse/next-reverse-bkpt...
authorCarl Love <cel@us.ibm.com>
Thu, 1 Dec 2022 19:39:45 +0000 (14:39 -0500)
committerCarl Love <cel@us.ibm.com>
Thu, 1 Dec 2022 19:39:45 +0000 (14:39 -0500)
commitc367d9e0cbfda0e32b7074c2719dfaee42c4cfb6
tree0a9961fcf1385a2e76ecbd901fba519e89cef254
parent4cb80f0e5bddc29cf50b08f0a4d2cca8ea330a23
PowerPC, fix gdb.reverse/finish-reverse-bkpt.exp and gdb.reverse/next-reverse-bkpt-over-sr.exp

The tests set a break point with the command break *func.  This sets a
breakpoint on the first instruction of the function.  PowerPC uses
Global Entry Points (GEP) and Local Entry Points (LEP).  The first
instruction in the function is the GEP.  The GEP sets up register
r2 before reaching the LEP.  When the function is called with func() the
function is entered via the LEP and the test fails because GDB does not
see the breakpoint on the GEP.  However, if the function is called via a
function pointer, execution begins at the GEP as the test expects.

Currently finish-reverse-bkpt.exp uses source file finish-reverse.c and
next-reverse-bpkt-over-sr.exp uses source file step-reverse.c  A new
source file was created for tests finish-reverse-bkpt.exp and
next-reverse-bkpt-over-sr.exp.  The new files use the new function
pointer method to call the functions so the tests will work correctly on
both PowerPC with a GEP and LEP as well as on other systems.  The GEP is
the same as the LEP on non PowerPC systems.

The expect files were changed to use the new source files and to set the
initial break point for the rest of the test on the function pointer call
for the function.

This patch fixes two PowerPC test failures in each of the tests
gdb.reverse/finish-reverse-bkpt.exp and
gdb.reverse/next-reverse-bkpt-over-sr.exp.

Patch tested on PowerPC and Intel X86-64 with no regressions.

Reviewed-By: Bruno Larsen <blarsen@redhat.com>
gdb/testsuite/gdb.reverse/finish-reverse-bkpt.c [new file with mode: 0644]
gdb/testsuite/gdb.reverse/finish-reverse-bkpt.exp
gdb/testsuite/gdb.reverse/next-reverse-bkpt-over-sr.c [new file with mode: 0644]
gdb/testsuite/gdb.reverse/next-reverse-bkpt-over-sr.exp