aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/testsuite/ChangeLog5
-rw-r--r--gdb/testsuite/gdb.reverse/insn-reverse.exp26
2 files changed, 20 insertions, 11 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index a88668d..6d7d0c2 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,5 +1,10 @@
2020-12-04 Tom de Vries <tdevries@suse.de>
+ * gdb.reverse/insn-reverse.exp: Don't break inside gdb_test_multiple
+ clause.
+
+2020-12-04 Tom de Vries <tdevries@suse.de>
+
* gdb.reverse/insn-reverse.exp: Fix count handling.
2020-12-04 Tom de Vries <tdevries@suse.de>
diff --git a/gdb/testsuite/gdb.reverse/insn-reverse.exp b/gdb/testsuite/gdb.reverse/insn-reverse.exp
index 5831952..54af958 100644
--- a/gdb/testsuite/gdb.reverse/insn-reverse.exp
+++ b/gdb/testsuite/gdb.reverse/insn-reverse.exp
@@ -79,23 +79,27 @@ proc test { func testcase_nr } {
set count 0
set insn_addr ""
for {} {$count < 500} {incr count} {
+ set prev_insn_addr $insn_addr
+ set insn_addr ""
gdb_test_multiple "x/i \$pc" "" {
-re ".* ($hex) <.*>:\[ \t\]*(.*)\r\n$gdb_prompt $" {
- set prev_insn_addr $insn_addr
set insn_addr $expect_out(1,string)
+ set insn_array($count) $expect_out(2,string)
+ }
+ }
- if [expr {$last_insn == $insn_addr}] {
- break
- }
+ if { $insn_addr == "" } {
+ break
+ }
- if { $prev_insn_addr == $insn_addr } {
- # Failed to make progress, might have run into SIGILL.
- unsupported "no progress at: $expect_out(2,string)"
- break
- }
+ if { $last_insn == $insn_addr } {
+ break
+ }
- set insn_array($count) $expect_out(2,string)
- }
+ if { $prev_insn_addr == $insn_addr } {
+ # Failed to make progress, might have run into SIGILL.
+ unsupported "no progress at: $expect_out(2,string)"
+ break
}
set pre_regs($count) [capture_command_output "info all-registers" ""]