8sa1-binutils-gdb/gdb/testsuite/gdb.reverse
Tom de Vries 6d3d6e4ba7 [gdb/testsuite] Fix gdb.reverse/solib-{precsave,reverse}.exp with gcc-8
With gcc-8, we have the following FAILs, which are not there for gcc-7:
...
FAIL: gdb.reverse/solib-precsave.exp: reverse-step into solib function one
FAIL: gdb.reverse/solib-precsave.exp: reverse-step within solib function one
FAIL: gdb.reverse/solib-precsave.exp: reverse-step back to main one
FAIL: gdb.reverse/solib-precsave.exp: reverse-step into solib function two
FAIL: gdb.reverse/solib-precsave.exp: reverse-step within solib function two
FAIL: gdb.reverse/solib-precsave.exp: reverse-step back to main two
FAIL: gdb.reverse/solib-precsave.exp: run until end part two
FAIL: gdb.reverse/solib-precsave.exp: reverse-next over solib function one
FAIL: gdb.reverse/solib-reverse.exp: reverse-step into solib function one
FAIL: gdb.reverse/solib-reverse.exp: reverse-step within solib function one
FAIL: gdb.reverse/solib-reverse.exp: reverse-step back to main one
FAIL: gdb.reverse/solib-reverse.exp: reverse-step into solib function two
FAIL: gdb.reverse/solib-reverse.exp: reverse-step within solib function two
FAIL: gdb.reverse/solib-reverse.exp: reverse-step back to main two
FAIL: gdb.reverse/solib-reverse.exp: run until end part two
FAIL: gdb.reverse/solib-reverse.exp: reverse-next over solib function one
...

Looking at the first FAIL for gdb.reverse/solib-precsave.exp, we have:
...
 (gdb) PASS: reverse-next first shr1
 reverse-next^M
 40        b[0] = 6;   b[1] = 9;     /* generic statement, end part two */^M
 (gdb) PASS: reverse-next generic
 reverse-step^M
-shr2 (x=17) at gdb.reverse/shr2.c:23^M
-23      }^M
-(gdb) PASS: reverse-step into solib function one
+38        b[1] = shr2(17);              /* middle part two */^M
+(gdb) FAIL: reverse-step into solib function one
...

There's a difference in line number info for line 38, where for gcc-7 we have:
...
Line number    Starting address    View    Stmt
         38            0x4005c6               x
...
and for gcc-8:
...
         38            0x4005c1               x
         38            0x4005cb               x
...
which explains why we don't step directly into "solib function one".

Fix this by recognizing the extra "recommended breakpoint location" and
issuing an additional reverse-next/step.

Tested on x86_64-linux.

gdb/testsuite/ChangeLog:

2020-07-21  Tom de Vries  <tdevries@suse.de>

	* gdb.reverse/solib-precsave.exp: Handle additional "recommended
	breakpoint locations".
	* gdb.reverse/solib-reverse.exp: Same.
2020-07-21 16:22:34 +02:00
..
amd64-tailcall-reverse.c Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
amd64-tailcall-reverse.exp Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
amd64-tailcall-reverse.S Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
break-precsave.exp Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
break-reverse.c Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
break-reverse.exp Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
consecutive-precsave.exp [gdb/testsuite] Fix gdb.reverse/consecutive-{precsave,reverse}.exp with gcc-8 2020-05-06 14:48:50 +02:00
consecutive-reverse.c Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
consecutive-reverse.exp [gdb/testsuite] Fix gdb.reverse/consecutive-{precsave,reverse}.exp with gcc-8 2020-05-06 14:48:50 +02:00
finish-precsave.exp Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
finish-reverse-bkpt.exp Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
finish-reverse.c Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
finish-reverse.exp Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
fstatat-reverse.c Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
fstatat-reverse.exp Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
getresuid-reverse.c Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
getresuid-reverse.exp Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
i386-precsave.exp Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
i386-reverse.c Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
i386-reverse.exp Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
i386-sse-reverse.c Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
i386-sse-reverse.exp Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
i387-env-reverse.c
i387-env-reverse.exp Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
i387-stack-reverse.c
i387-stack-reverse.exp Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
insn-reverse-aarch64.c Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
insn-reverse-arm.c Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
insn-reverse-x86.c Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
insn-reverse.c Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
insn-reverse.exp Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
machinestate-precsave.exp Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
machinestate.c Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
machinestate.exp Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
ms1.c Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
next-reverse-bkpt-over-sr.exp Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
pipe-reverse.c Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
pipe-reverse.exp Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
readv-reverse.c Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
readv-reverse.exp Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
recvmsg-reverse.c Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
recvmsg-reverse.exp Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
rerun-prec.c Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
rerun-prec.exp Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
s390-mvcle.c Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
s390-mvcle.exp Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
shr1.c Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
shr2.c Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
shr.h Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
sigall-precsave.exp Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
sigall-reverse.c Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
sigall-reverse.exp Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
singlejmp-reverse-nodebug.c Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
singlejmp-reverse-nodebug.S Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
singlejmp-reverse.c Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
singlejmp-reverse.exp Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
singlejmp-reverse.S Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
solib-precsave.exp [gdb/testsuite] Fix gdb.reverse/solib-{precsave,reverse}.exp with gcc-8 2020-07-21 16:22:34 +02:00
solib-reverse.c Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
solib-reverse.exp [gdb/testsuite] Fix gdb.reverse/solib-{precsave,reverse}.exp with gcc-8 2020-07-21 16:22:34 +02:00
step-indirect-call-thunk.c Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
step-indirect-call-thunk.exp Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
step-precsave.exp Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
step-reverse.c [gdb/testsuite] Fix step-reverse.c with gcc-10 2020-07-21 15:27:18 +02:00
step-reverse.exp Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
time-reverse.c Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
time-reverse.exp Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
until-precsave.exp Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
until-reverse.c [gdb/testsuite] Fix Wunused-result warning in until-reverse.c 2020-05-01 11:04:22 +02:00
until-reverse.exp Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
ur1.c Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
waitpid-reverse.c Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
waitpid-reverse.exp Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
watch-precsave.exp Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
watch-reverse.c Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
watch-reverse.exp Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00