return
}
- set saved_gdbflags $GDBFLAGS
-
set stty_supported [run_stty "stty before" stty_before]
set test "start gdb"
return
}
- set saved_gdbflags $GDBFLAGS
-
set stty_supported [run_stty "stty before" stty_before]
set test "start gdb"
set x_file ${srcdir}/${subdir}/$testfile.gdb
-global GDBFLAGS
-set saved_gdbflags $GDBFLAGS
-
# Run the test proper.
proc test {} {
global inferior_exited_re
global binfile
global gdb_prompt
- global saved_gdbflags GDBFLAGS
+ global GDBFLAGS
global x_file
gdb_exit
- set GDBFLAGS "$GDBFLAGS -x $x_file $binfile"
-
- set GDBFLAGS $saved_gdbflags
- append GDBFLAGS " -x \"$x_file\""
- append GDBFLAGS " --args \"$binfile\""
-
set test "run to end"
- gdb_exit
- set res [gdb_spawn]
+ save_vars { GDBFLAGS } {
+ append GDBFLAGS " -x \"$x_file\""
+ append GDBFLAGS " --args \"$binfile\""
+ set res [gdb_spawn]
+ }
if { $res != 0} {
fail $test
return -1
}
test
-
-set GDBFLAGS $saved_gdbflags
gdb_exit
- set saved_gdbflags $GDBFLAGS
+ save_vars { GDBFLAGS } {
- # See "used to behave differently" further below.
- if { $initial_load == "file" } {
- gdb_start
- gdb_file_cmd $binfile
- } else {
- global last_loaded_file
+ # See "used to behave differently" further below.
+ if { $initial_load == "file" } {
+ gdb_start
+ gdb_file_cmd $binfile
+ } else {
+ global last_loaded_file
- # gdb_file_cmd sets this. This is what gdb_reload
- # implementations use as binary.
- set last_loaded_file $binfile
+ # gdb_file_cmd sets this. This is what gdb_reload
+ # implementations use as binary.
+ set last_loaded_file $binfile
- set GDBFLAGS "$GDBFLAGS $binfile"
- gdb_start
+ set GDBFLAGS "$GDBFLAGS $binfile"
+ gdb_start
+ }
+ gdb_reinitialize_dir $srcdir/$subdir
+ gdb_reload
}
- gdb_reinitialize_dir $srcdir/$subdir
- gdb_reload
- set GDBFLAGS $saved_gdbflags
if ![runto start] {
return
set_breakpoint_on_gcd_function
-set saved_gdbflags $GDBFLAGS
-set GDBFLAGS "$GDBFLAGS --readnow"
-clean_restart ${testfile}
-set GDBFLAGS $saved_gdbflags
+save_vars { GDBFLAGS } {
+ set GDBFLAGS "$GDBFLAGS --readnow"
+ clean_restart ${testfile}
+}
with_test_prefix "readnow" {
set_breakpoint_on_gcd_function
with_test_prefix "$prefix" {
gdb_exit
- set saved_gdbflags $GDBFLAGS
+ save_vars { GDBFLAGS } {
- # See "used to behave differently" further below.
- if { $initial_load == "file" } {
- gdb_start
- gdb_file_cmd $binfile
- } else {
- global last_loaded_file
+ # See "used to behave differently" further below.
+ if { $initial_load == "file" } {
+ gdb_start
+ gdb_file_cmd $binfile
+ } else {
+ global last_loaded_file
- # gdb_file_cmd sets this. This is what gdb_reload
- # implementations use as binary.
- set last_loaded_file $binfile
+ # gdb_file_cmd sets this. This is what gdb_reload
+ # implementations use as binary.
+ set last_loaded_file $binfile
- set GDBFLAGS "$GDBFLAGS $binfile"
- gdb_start
- }
+ set GDBFLAGS "$GDBFLAGS $binfile"
+ gdb_start
+ }
- gdb_reinitialize_dir $srcdir/$subdir
- gdb_reload
- set GDBFLAGS $saved_gdbflags
+ gdb_reinitialize_dir $srcdir/$subdir
+ gdb_reload
+ }
if {![runto_main]} {
return
# Same thing for symtabs
gdb_exit
-global GDBFLAGS
-set saved_gdbflags $GDBFLAGS
-set GDBFLAGS "$GDBFLAGS --readnow $binfile1"
-gdb_start
-set GDBFLAGS $saved_gdbflags
+save_vars { GDBFLAGS } {
+ set GDBFLAGS "$GDBFLAGS --readnow $binfile1"
+ gdb_start
+}
with_test_prefix "single symtabs" {
test_eliminated_var my_global_symbol
set file_arg [remote_download host $file_arg]
}
-global GDBFLAGS
-set saved_gdbflags $GDBFLAGS
-
# Returns true if the board can 'gdb -ex "start"', false otherwise.
proc probe_can_run_cmdline {} {
global srcfile file_arg
- global saved_gdbflags GDBFLAGS
+ global GDBFLAGS
global gdb_prompt
- set GDBFLAGS $saved_gdbflags
- append GDBFLAGS " -ex \"start\""
- append GDBFLAGS " --args \"$file_arg\""
-
with_test_prefix "probe support" {
set test "run to main"
gdb_exit
- set res [gdb_spawn]
+ save_vars { GDBFLAGS } {
+ append GDBFLAGS " -ex \"start\""
+ append GDBFLAGS " --args \"$file_arg\""
+ set res [gdb_spawn]
+ }
if { $res != 0} {
fail $test
return -1
proc test_fg_execution_pagination_return {} {
global file_arg
- global saved_gdbflags GDBFLAGS
+ global GDBFLAGS
global gdb_prompt pagination_prompt
- set GDBFLAGS $saved_gdbflags
- append GDBFLAGS " -ex \"set height 2\""
- append GDBFLAGS " -ex \"start\""
- append GDBFLAGS " --args \"$file_arg\""
-
with_test_prefix "return" {
set test "run to pagination"
gdb_exit
- set res [gdb_spawn]
+
+ save_vars { GDBFLAGS } {
+ append GDBFLAGS " -ex \"set height 2\""
+ append GDBFLAGS " -ex \"start\""
+ append GDBFLAGS " --args \"$file_arg\""
+ set res [gdb_spawn]
+ }
if { $res != 0} {
fail $test
return $res
}
+
gdb_test_multiple "" $test {
-re "$pagination_prompt$" {
pass $test
proc test_fg_execution_pagination_cancel { how } {
global file_arg
- global saved_gdbflags GDBFLAGS
+ global GDBFLAGS
global gdb_prompt pagination_prompt
- set GDBFLAGS $saved_gdbflags
-
- append GDBFLAGS " -ex \"set height 2\""
- append GDBFLAGS " -ex \"start\""
- append GDBFLAGS " --args \"$file_arg\""
-
with_test_prefix "cancel with $how" {
set test "run to pagination"
gdb_exit
- set res [gdb_spawn]
+
+ save_vars { GDBFLAGS } {
+ append GDBFLAGS " -ex \"set height 2\""
+ append GDBFLAGS " -ex \"start\""
+ append GDBFLAGS " --args \"$file_arg\""
+ set res [gdb_spawn]
+ }
if { $res != 0} {
fail $test
return $res
}
+
gdb_test_multiple "" $test {
-re "$pagination_prompt$" {
pass $test
test_fg_execution_pagination_cancel "quit"
}
}
-
-set GDBFLAGS $saved_gdbflags
# This is a test for the gdb invocation option -l.
-global GDBFLAGS
+gdb_exit
#
# Test that -l is processed correctly.
#
-set old_gdbflags $GDBFLAGS
-set GDBFLAGS "$GDBFLAGS -l 42"
-gdb_exit
-gdb_start
+save_vars { GDBFLAGS } {
+ set GDBFLAGS "$GDBFLAGS -l 42"
+ gdb_start
+}
+
gdb_test "show remotetimeout" \
"Timeout limit to wait for target to respond is 42\." \
"correct remotetimeout printed"
-
-set GDBFLAGS $old_gdbflags
-
return -1
}
-set old_gdbflags $GDBFLAGS
+save_vars { GDBFLAGS } {
+ set GDBFLAGS "$GDBFLAGS $binfile"
+ clean_restart
+}
# Expect a failure before --write has been added to the command line
-set GDBFLAGS "$old_gdbflags $binfile"
-clean_restart
test_print_reject "set {int}main = 0x4242" "Cannot access memory at address"
+save_vars { GDBFLAGS } {
+ set GDBFLAGS "$GDBFLAGS --write $binfile"
+ clean_restart
+}
+
# Setting memory should now work correctly after adding --write
-set GDBFLAGS "$old_gdbflags --write $binfile"
-clean_restart
gdb_test_no_output "set {int}main = 0x4242"
-# Check that memory write persists after quitting GDB
gdb_exit
-gdb_start
-gdb_test "x /x main" "<main>:.*4242"
+save_vars { GDBFLAGS } {
+ set GDBFLAGS "$GDBFLAGS --write $binfile"
+ gdb_start
+}
-set GDBFLAGS $old_gdbflags
+# Check that memory write persists after quitting GDB
+gdb_test "x /x main" "<main>:.*4242"
return -1
}
-set old_gdbflags $GDBFLAGS
-set GDBFLAGS "$GDBFLAGS -readnow"
-clean_restart $testfile
-set GDBFLAGS $old_gdbflags
+save_vars { GDBFLAGS } {
+ set GDBFLAGS "$GDBFLAGS -readnow"
+ clean_restart $testfile
+}
gdb_test "show language" {The current source language is "auto; currently c\+\+"\.}
return -1
}
-global GDBFLAGS
-set saved_gdbflags $GDBFLAGS
-set GDBFLAGS [concat $GDBFLAGS " -readnow"]
-clean_restart ${testfile}
-set GDBFLAGS $saved_gdbflags
+save_vars { GDBFLAGS } {
+ set GDBFLAGS [concat $GDBFLAGS " -readnow"]
+ clean_restart ${testfile}
+}
if ![runto_main] {
return -1
# start the debugger with -readnow. This force expansion as soon as
# the objfile is loaded.
-set saved_gdbflags $GDBFLAGS
-set GDBFLAGS "$GDBFLAGS -readnow"
-clean_restart ${testfile}
-set GDBFLAGS $saved_gdbflags
+save_vars { GDBFLAGS } {
+ set GDBFLAGS "$GDBFLAGS -readnow"
+ clean_restart ${testfile}
+}
# And just to be sure that the debugger did not crash after having
# expanded our symbols, do a life-check.
test
-set saved_gdbflags $GDBFLAGS
-set GDBFLAGS "$GDBFLAGS --readnow"
-clean_restart ${binfile}
-set GDBFLAGS $saved_gdbflags
+save_vars { GDBFLAGS } {
+ set GDBFLAGS "$GDBFLAGS --readnow"
+ clean_restart ${binfile}
+}
with_test_prefix "readnow" {
test
return -1
}
-set saved_gdbflags $GDBFLAGS
-set GDBFLAGS "$GDBFLAGS --readnow"
-clean_restart $executable
-set GDBFLAGS $saved_gdbflags
+save_vars { GDBFLAGS } {
+ set GDBFLAGS "$GDBFLAGS --readnow"
+ clean_restart $executable
+}
gdb_test "p 1" " = 1" "alive"
# We need --readnow because otherwise we never read in the CU we
# created above.
-set saved_gdbflags $GDBFLAGS
-set GDBFLAGS "$GDBFLAGS -readnow"
-clean_restart ${testfile}
-set GDBFLAGS $saved_gdbflags
+save_vars { GDBFLAGS } {
+ set GDBFLAGS "$GDBFLAGS -readnow"
+ clean_restart ${testfile}
+}
if ![runto_main] {
return -1
# We need --readnow because otherwise we never read in the CU we
# created above.
-set saved_gdbflags $GDBFLAGS
-set GDBFLAGS "$GDBFLAGS -readnow"
-clean_restart ${testfile}
-set GDBFLAGS $saved_gdbflags
+save_vars { GDBFLAGS } {
+ set GDBFLAGS "$GDBFLAGS -readnow"
+ clean_restart ${testfile}
+}
if ![runto_main] {
return -1
return -1
}
-set saved_gdbflags $GDBFLAGS
-set GDBFLAGS "$GDBFLAGS --readnow"
-clean_restart $testfile
-set GDBFLAGS $saved_gdbflags
+save_vars { GDBFLAGS } {
+ set GDBFLAGS "$GDBFLAGS --readnow"
+ clean_restart $testfile
+}
gdb_test "p 1" " = 1" "alive"
# We need --readnow because otherwise we never read in the CUs we
# created above.
-set saved_gdbflags $GDBFLAGS
-set GDBFLAGS "$GDBFLAGS -readnow"
+save_vars { GDBFLAGS } {
+ set GDBFLAGS "$GDBFLAGS -readnow"
-if { [prepare_for_testing "failed to prepare" ${testfile} \
- [list $srcfile $asm_file] {nodebug}] } {
- set GDBFLAGS $saved_gdbflags
- return -1
+ if { [prepare_for_testing "failed to prepare" ${testfile} \
+ [list $srcfile $asm_file] {nodebug}] } {
+ return -1
+ }
}
-set GDBFLAGS $saved_gdbflags
-
gdb_py_test_silent_cmd "python with_producer = gdb.lookup_global_symbol(\"with_producer\")" \
"get with_producer symbol" 0
standard_testfile .f90
-set old_gdbflags $GDBFLAGS
-set GDBFLAGS [string map {"-readnow" ""} "$GDBFLAGS"]
+save_vars { GDBFLAGS } {
+ set GDBFLAGS [string map {"-readnow" ""} "$GDBFLAGS"]
-if {[prepare_for_testing ${testfile}.exp ${testfile} ${srcfile} {debug f90}]} {
- return -1
+ if {[prepare_for_testing ${testfile}.exp ${testfile} ${srcfile} {debug f90}]} {
+ return -1
+ }
}
gdb_test "info main" "simple" "info main prior to start"
gdb_test "info main" "simple" "info main post start"
-set GDBFLAGS "$GDBFLAGS -readnow"
-clean_restart $testfile
+save_vars { GDBFLAGS } {
+ set GDBFLAGS "$GDBFLAGS -readnow"
+ clean_restart $testfile
+}
gdb_test "info main" "simple" "info main with readnow"
-
-set GDBFLAGS $old_gdbflags
# Check if start command is supported.
require !use_gdb_stub
-# The plan is for async mode to become the default but toggle for now.
-set saved_gdbflags $GDBFLAGS
-set GDBFLAGS [concat $GDBFLAGS " -ex \"set mi-async on\""]
-
load_lib mi-support.exp
standard_testfile basics.c
return -1
}
-if {[mi_clean_restart $binfile]} {
- return
+# The plan is for async mode to become the default but toggle for now.
+save_vars { GDBFLAGS } {
+ set GDBFLAGS [concat $GDBFLAGS " -ex \"set mi-async on\""]
+
+ if {[mi_clean_restart $binfile]} {
+ return
+ }
}
# mi_gdb_test cannot be used for asynchronous commands because there are
linux_async_tests
mi_gdb_exit
-
-set GDBFLAGS $saved_gdbflags
return -1
}
-save_vars { INTERNAL_GDBFLAGS } {
+save_vars { INTERNAL_GDBFLAGS GDBFLAGS } {
set INTERNAL_GDBFLAGS [string map {"-q" ""} $INTERNAL_GDBFLAGS]
- global GDBFLAGS
- set saved_gdbflags $GDBFLAGS
set GDBFLAGS [concat $GDBFLAGS " -ex \"python p = list()\""]
set prompt_func "python def foo(x): global p; p.append(x); return \'(Foo) \'"
set GDBFLAGS [concat $GDBFLAGS " -ex \"$prompt_func\""]
}
if {![can_spawn_for_attach]} {
- set GDBFLAGS $saved_gdbflags
return 0
}
gdb_exit
}
- set GDBFLAGS $saved_gdbflags
kill_wait_spawned_process $test_spawn_id
}
global srcfile testfile
global gdb_prompt
- set saved_gdbflags $GDBFLAGS
- set GDBFLAGS [concat $GDBFLAGS " -ex \"set non-stop on\""]
+ save_vars { GDBFLAGS } {
+ set GDBFLAGS [concat $GDBFLAGS " -ex \"set non-stop on\""]
- if {[prepare_for_testing "failed to prepare" \
- $testfile $srcfile {debug pthreads}] == -1} {
- set GDBFLAGS $saved_gdbflags
- return -1
+ if {[prepare_for_testing "failed to prepare" \
+ $testfile $srcfile {debug pthreads}] == -1} {
+ return -1
+ }
}
- set GDBFLAGS $saved_gdbflags
-
if {![runto_main]} {
return 0
}
global linenum
global is_remote_target
- set saved_gdbflags $GDBFLAGS
- set GDBFLAGS [concat $GDBFLAGS " -ex \"set non-stop on\""]
- clean_restart $binfile
- set GDBFLAGS $saved_gdbflags
+ save_vars { GDBFLAGS } {
+ set GDBFLAGS [concat $GDBFLAGS " -ex \"set non-stop on\""]
+ clean_restart $binfile
+ }
if {![runto_main]} {
return 0
global binfile
global linenum
- set saved_gdbflags $GDBFLAGS
- set GDBFLAGS [concat $GDBFLAGS " -ex \"set non-stop $non_stop\""]
- clean_restart $binfile
- set GDBFLAGS $saved_gdbflags
+ save_vars { GDBFLAGS } {
+ set GDBFLAGS [concat $GDBFLAGS " -ex \"set non-stop $non_stop\""]
+ clean_restart $binfile
+ }
if {![runto_main]} {
return 0
proc gdb_spawn_with_cmdline_opts { cmdline_flags } {
global GDBFLAGS
- set saved_gdbflags $GDBFLAGS
+ save_vars { GDBFLAGS } {
+ if {$GDBFLAGS != ""} {
+ append GDBFLAGS " "
+ }
+ append GDBFLAGS $cmdline_flags
- if {$GDBFLAGS != ""} {
- append GDBFLAGS " "
+ set res [gdb_spawn]
}
- append GDBFLAGS $cmdline_flags
-
- set res [gdb_spawn]
-
- set GDBFLAGS $saved_gdbflags
return $res
}