diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index a88668d9b4e..6d7d0c27266 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2020-12-04 Tom de Vries + + * gdb.reverse/insn-reverse.exp: Don't break inside gdb_test_multiple + clause. + 2020-12-04 Tom de Vries * gdb.reverse/insn-reverse.exp: Fix count handling. diff --git a/gdb/testsuite/gdb.reverse/insn-reverse.exp b/gdb/testsuite/gdb.reverse/insn-reverse.exp index 583195263ca..54af9582f23 100644 --- a/gdb/testsuite/gdb.reverse/insn-reverse.exp +++ b/gdb/testsuite/gdb.reverse/insn-reverse.exp @@ -79,25 +79,29 @@ 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) - - if [expr {$last_insn == $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 - } - set insn_array($count) $expect_out(2,string) } } + if { $insn_addr == "" } { + break + } + + if { $last_insn == $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 + } + set pre_regs($count) [capture_command_output "info all-registers" ""] gdb_test "si" "" "" }