-# Copyright 2008, 2009 Free Software Foundation, Inc.
+# Copyright 2008-2019 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# This file is part of the GDB testsuite. It tests reverse debugging
# with breakpoints.
-if ![target_info exists gdb,can_reverse] {
+if ![supports_reverse] {
return
}
-set testfile "break-reverse"
-set srcfile ${testfile}.c
+standard_testfile
-if { [prepare_for_testing $testfile.exp $testfile $srcfile] } {
+if { [prepare_for_testing "failed to prepare" $testfile $srcfile] } {
return -1
}
runto main
-if [target_info exists gdb,use_precord] {
+if [supports_process_record] {
# Activate process record/replay
- gdb_test "record" "" "Turn on process record"
- # FIXME: command ought to acknowledge, so we can test if it succeeded.
+ gdb_test_no_output "record" "turn on process record"
}
gdb_test "break foo" \
gdb_test "break $end_location" \
"Breakpoint $decimal at .* line $end_location\." \
- set breakpoint at end of main"
+ "set breakpoint at end of main"
-gdb_continue_to_breakpoint "foo" ".*/$srcfile:$foo_location.*"
-gdb_continue_to_breakpoint "bar" ".*/$srcfile:$bar_location.*"
-gdb_continue_to_breakpoint "end" ".*/$srcfile:$end_location.*"
+gdb_continue_to_breakpoint "foo forward, the first time" \
+ ".*$srcfile:$foo_location.*"
+gdb_continue_to_breakpoint "bar forward, the first time" \
+ ".*$srcfile:$bar_location.*"
+gdb_continue_to_breakpoint "end forward, the first time" \
+ ".*$srcfile:$end_location.*"
-# FIXME 'set exec-dir' command should give some output so we can test.
-gdb_test "set exec-direction reverse" "" "set reverse"
+gdb_test_no_output "set exec-direction reverse" "set reverse"
-gdb_continue_to_breakpoint "bar backward" ".*/$srcfile:$bar_location.*"
-gdb_continue_to_breakpoint "foo backward" ".*/$srcfile:$foo_location.*"
+gdb_continue_to_breakpoint "bar backward" ".*$srcfile:$bar_location.*"
+gdb_continue_to_breakpoint "foo backward" ".*$srcfile:$foo_location.*"
gdb_test_multiple "continue" "main backward" {
- -re ".*Breakpoint $decimal,.*/$srcfile:$main_location.*$gdb_prompt $" {
+ -re ".*Breakpoint $decimal,.*$srcfile:$main_location.*$gdb_prompt $" {
pass "main backward"
}
-re "No more reverse-execution history.* break in main .*$gdb_prompt $" {
}
}
-gdb_test "set exec-direction forward" "" "set forward"
+gdb_test_no_output "set exec-direction forward" "set forward"
-gdb_continue_to_breakpoint "foo" ".*/$srcfile:$foo_location.*"
-gdb_continue_to_breakpoint "bar" ".*/$srcfile:$bar_location.*"
+gdb_continue_to_breakpoint "foo forward again" \
+ ".*$srcfile:$foo_location.*"
+gdb_continue_to_breakpoint "bar forward again" \
+ ".*$srcfile:$bar_location.*"
gdb_test_multiple "continue" "end of record log" {
- -re ".*Breakpoint $decimal,.*/$srcfile:$end_location.*$gdb_prompt $" {
+ -re ".*Breakpoint $decimal,.*$srcfile:$end_location.*$gdb_prompt $" {
pass "end of record log"
}
-re "No more reverse-execution history.* end of main .*$gdb_prompt $" {