I noticed this code in gdb.base/watchpoint-reuse-slot.exp, proc stepi:
...
gdb_test_multiple "stepi" $test {
-re "($hex).*[string_to_regexp $srcline]\r\n$gdb_prompt $" {
set addr $expect_out(1,string)
if {$addr != $cur_addr} {
pass $test
} else {
fail $test
}
set cur_addr addr
}
}
...
The variable cur_addr is documented as:
...
# The address the program is stopped at currently.
set cur_addr ""
...
but in the gdb_test_multiple clause we assign the string "addr" to cur_addr,
while $addr contains the current address.
Fix this by assigning $addr instead "addr".
Tested on x86_64-linux.
gdb/testsuite/ChangeLog:
2020-05-06 Tom de Vries <tdevries@suse.de>
* gdb.base/watchpoint-reuse-slot.exp: Fix incorrect assignment.
+2020-05-06 Tom de Vries <tdevries@suse.de>
+
+ * gdb.base/watchpoint-reuse-slot.exp: Fix incorrect assignment.
+
2020-05-06 Tom de Vries <tdevries@suse.de>
* gdb.base/store.exp (check_set, up_set): Allowing missing location
} else {
fail $test
}
- set cur_addr addr
+ set cur_addr $addr
}
}
}