TERM
}
-gdb_test "continue" "Breakpoint .* end of main .*" "run to end of main"
+# Software single-step targets can't step into signal handlers. Since
+# later, when replaying the execution log, the test wants to set
+# breakpoints on handlers, we need to make sure that while recording,
+# GDB steps through the handlers too, so that the execution log covers
+# them. Setting breakpoints in all handlers takes care of it. This
+# is harmless for hardware-step targets.
+foreach sig $signals {
+ set test "break *handle_$sig"
+ gdb_test_multiple $test $test {
+ -re "Breakpoint .*$gdb_prompt $" {
+ # No need to record a pass for each breakpoint.
+ }
+ }
+}
+
+gdb_test_multiple "continue" "continue" {
+ -re "Breakpoint .* end of main .*$gdb_prompt $" {
+ pass "run to end of main"
+ }
+ -re "Breakpoint .* handle_.*$gdb_prompt $" {
+ send_gdb "continue\n"
+ exp_continue
+ }
+}
+
+delete_breakpoints
gdb_test "record save $precsave" \
"Saved core file $precsave with execution log\." \