# This testcase is part of GDB, the GNU debugger. # # Copyright 2016-2023 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 # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . if [target_info exists gdb,nosignals] { verbose "Skipping branch-to-self.exp because of nosignals." return } standard_testfile if { [build_executable ${testfile}.exp ${testfile} $srcfile {debug}] == -1 } { return -1 } with_test_prefix "single-step" { global testfile clean_restart ${testfile} if ![runto_main] { return -1 } set line_num [gdb_get_line_number "loop-line" ${testfile}.c] gdb_test "break ${testfile}.c:${line_num}" "Breakpoint .*" \ "set breakpoint" gdb_continue_to_breakpoint "hit breakpoint" gdb_test "si" ".*${testfile}.c:${line_num}.*" } with_test_prefix "break-cond" { global testfile foreach_with_prefix side {"host" "target"} { clean_restart ${testfile} if ![runto_main] { return -1 } set test "set breakpoint condition-evaluation $side" gdb_test_multiple $test $test { -re "warning: Target does not support breakpoint condition evaluation.\r\nUsing host evaluation mode instead.\r\n$gdb_prompt $" { # Target doesn't support breakpoint condition # evaluation on its side. Skip the test. continue } -re "^$test\r\n$gdb_prompt $" { } } set line_num [gdb_get_line_number "loop-line" ${testfile}.c] gdb_test "break ${testfile}.c:${line_num} if counter > 3" \ "Breakpoint .*" "set breakpoint with condition" gdb_continue_to_breakpoint "continue to break" gdb_test "p counter" ".* = 5" } }