[gdb/testsuite] Fix gdb.reverse/consecutive-{precsave,reverse}.exp with gcc-8
authorTom de Vries <tdevries@suse.de>
Wed, 6 May 2020 12:48:50 +0000 (14:48 +0200)
committerTom de Vries <tdevries@suse.de>
Wed, 6 May 2020 12:48:50 +0000 (14:48 +0200)
When running test-cases gdb.reverse/consecutive-precsave.exp and
gdb.reverse/consecutive-reverse.exp with gcc-8, we get:
...
FAIL: gdb.reverse/consecutive-precsave.exp: stopped at bp, 2nd instr
FAIL: gdb.reverse/consecutive-reverse.exp: stopped at bp, 2nd instr
...

These FAILs are duplicates of the FAILs fixed in commit 7c99e7e2b08
"[gdb/testsuite] Fix gdb.base/consecutive.exp with gcc-8".

Fix these in the same manner.

Tested on x86_64-linux.

gdb/testsuite/ChangeLog:

2020-05-06  Tom de Vries  <tdevries@suse.de>

* gdb.reverse/consecutive-precsave.exp: Handle if instruction after
breakpoint is at a "recommended breakpoint location".
* gdb.reverse/consecutive-reverse.exp: Same.

gdb/testsuite/ChangeLog
gdb/testsuite/gdb.reverse/consecutive-precsave.exp
gdb/testsuite/gdb.reverse/consecutive-reverse.exp

index d808217ad571a91885b9d10b88b4a3aae6aa7dea..443c3d35d12b10f3f870d604418ee434acbc2ad9 100644 (file)
@@ -1,3 +1,9 @@
+2020-05-06  Tom de Vries  <tdevries@suse.de>
+
+       * gdb.reverse/consecutive-precsave.exp: Handle if instruction after
+       breakpoint is at a "recommended breakpoint location".
+       * gdb.reverse/consecutive-reverse.exp: Same.
+
 2020-05-06  Tom de Vries  <tdevries@suse.de>
 
        * gdb.base/watchpoint-reuse-slot.exp (stepi): Print $pc to get current
index 9aaa1314d2548260f1211880004aa9726f6e3c52..dec501d589b65894c9df209ba843db225ad21c37 100644 (file)
@@ -35,6 +35,8 @@ if [supports_process_record] {
     gdb_test_no_output "record" "turn on process record"
 }
 
+set is_stmt [is_stmt_addresses $srcfile]
+
 set end_location  [gdb_get_line_number "end of main"  ]
 gdb_test "break $end_location" \
     "Breakpoint $decimal at .*$srcfile, line $end_location\." \
@@ -79,7 +81,7 @@ gdb_test "break \*$foo2_addr" "Breakpoint $decimal at $foo2_addr: file .*" \
 
 set testmsg "stopped at bp, 2nd instr"
 gdb_test_multiple "step" $testmsg {
-    -re "Breakpoint $decimal, ($hex) in foo.*$gdb_prompt $" {
+    -re -wrap "Breakpoint $decimal, ($hex) in foo.*" {
        set stop_addr $expect_out(1,string)
        if [eval expr "$foo2_addr == $stop_addr"] then {
            pass "stopped at bp, 2nd instr"
@@ -87,6 +89,17 @@ gdb_test_multiple "step" $testmsg {
            fail "stopped at bp, 2nd instr (wrong address)"
        }
     }
+    -re -wrap "Breakpoint $decimal, foo.*" {
+       set stop_addr [get_valueof "/x" "\$pc" "" "value of pc"]
+       set stop_addr_is_stmt [hex_in_list $stop_addr $is_stmt]
+       if { ! $stop_addr_is_stmt } {
+           fail "stopped at bp, 2nd instr (missing hex prefix)"
+       } elseif [eval expr "$foo2_addr == $stop_addr"] then {
+           pass "stopped at bp, 2nd instr"
+       } else {
+           fail "stopped at bp, 2nd instr (wrong address)"
+       }
+    }
 }
 
 ###
index 33834875d49008eccf3821e6f6238493d8e8462b..ff03e6744a4628a7ea87dc61eded971a14558add 100644 (file)
@@ -33,6 +33,8 @@ if [supports_process_record] {
     gdb_test_no_output "record" "turn on process record"
 }
 
+set is_stmt [is_stmt_addresses $srcfile]
+
 gdb_breakpoint foo
 gdb_test "continue" "Breakpoint $decimal, foo .*" \
        "continue to breakpoint in foo"
@@ -59,7 +61,7 @@ gdb_test "break \*$foo2_addr" "Breakpoint $decimal at $foo2_addr: file .*" \
 
 set testmsg "stopped at bp, 2nd instr"
 gdb_test_multiple "step" $testmsg {
-    -re "Breakpoint $decimal, ($hex) in foo.*$gdb_prompt $" {
+    -re -wrap "Breakpoint $decimal, ($hex) in foo.*" {
        set stop_addr $expect_out(1,string)
        if [eval expr "$foo2_addr == $stop_addr"] then {
            pass "stopped at bp, 2nd instr"
@@ -67,6 +69,17 @@ gdb_test_multiple "step" $testmsg {
            fail "stopped at bp, 2nd instr (wrong address)"
        }
     }
+    -re -wrap "Breakpoint $decimal, foo.*" {
+       set stop_addr [get_valueof "/x" "\$pc" "" "value of pc"]
+       set stop_addr_is_stmt [hex_in_list $stop_addr $is_stmt]
+       if { ! $stop_addr_is_stmt } {
+           fail "stopped at bp, 2nd instr (missing hex prefix)"
+       } elseif [eval expr "$foo2_addr == $stop_addr"] then {
+           pass "stopped at bp, 2nd instr"
+       } else {
+           fail "stopped at bp, 2nd instr (wrong address)"
+       }
+    }
 }
 
 ###