Eliminate mi_run_to_main, introduce mi_clean_restart
authorPedro Alves <pedro@palves.net>
Sun, 11 Oct 2020 20:58:31 +0000 (21:58 +0100)
committerPedro Alves <pedro@palves.net>
Tue, 13 Oct 2020 21:34:54 +0000 (22:34 +0100)
Since we now have mi_runto_main which is like runto_main, eliminate
mi_run_to_main, in favor of a new MI clean_restart counterpart --
mi_clean_restart -- and mi_runto_main.

This makes MI testcases look a bit more like CLI testcases.

gdb/testsuite/ChangeLog:

* lib/mi-support.exp (mi_clean_restart): New.
(mi_run_to_main): Delete.
All callers adjust to use mi_clean_restart / mi_runto_main.

Change-Id: I34920bab4fea1f23fb752928c2969c1f6ad714b6

60 files changed:
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.ada/mi_catch_assert.exp
gdb/testsuite/gdb.ada/mi_catch_ex.exp
gdb/testsuite/gdb.ada/mi_catch_ex_hand.exp
gdb/testsuite/gdb.ada/mi_dyn_arr.exp
gdb/testsuite/gdb.ada/mi_exc_info.exp
gdb/testsuite/gdb.ada/mi_interface.exp
gdb/testsuite/gdb.ada/mi_prot.exp
gdb/testsuite/gdb.ada/mi_ref_changeable.exp
gdb/testsuite/gdb.ada/mi_string_access.exp
gdb/testsuite/gdb.ada/mi_var_access.exp
gdb/testsuite/gdb.ada/mi_var_array.exp
gdb/testsuite/gdb.ada/mi_var_union.exp
gdb/testsuite/gdb.ada/mi_variant.exp
gdb/testsuite/gdb.mi/gdb2549.exp
gdb/testsuite/gdb.mi/gdb669.exp
gdb/testsuite/gdb.mi/gdb701.exp
gdb/testsuite/gdb.mi/gdb792.exp
gdb/testsuite/gdb.mi/mi-break.exp
gdb/testsuite/gdb.mi/mi-breakpoint-changed.exp
gdb/testsuite/gdb.mi/mi-breakpoint-multiple-locations.exp
gdb/testsuite/gdb.mi/mi-catch-cpp-exceptions.exp
gdb/testsuite/gdb.mi/mi-catch-load.exp
gdb/testsuite/gdb.mi/mi-cli.exp
gdb/testsuite/gdb.mi/mi-cmd-param-changed.exp
gdb/testsuite/gdb.mi/mi-complete.exp
gdb/testsuite/gdb.mi/mi-console.exp
gdb/testsuite/gdb.mi/mi-detach.exp
gdb/testsuite/gdb.mi/mi-disassemble.exp
gdb/testsuite/gdb.mi/mi-dprintf.exp
gdb/testsuite/gdb.mi/mi-exit-code.exp
gdb/testsuite/gdb.mi/mi-fill-memory.exp
gdb/testsuite/gdb.mi/mi-fortran-modules.exp
gdb/testsuite/gdb.mi/mi-frame-regs.exp
gdb/testsuite/gdb.mi/mi-info-os.exp
gdb/testsuite/gdb.mi/mi-linespec-err-cp.exp
gdb/testsuite/gdb.mi/mi-logging.exp
gdb/testsuite/gdb.mi/mi-nonstop-exit.exp
gdb/testsuite/gdb.mi/mi-nonstop.exp
gdb/testsuite/gdb.mi/mi-ns-stale-regcache.exp
gdb/testsuite/gdb.mi/mi-nsintrall.exp
gdb/testsuite/gdb.mi/mi-nsmoribund.exp
gdb/testsuite/gdb.mi/mi-nsthrexec.exp
gdb/testsuite/gdb.mi/mi-read-memory.exp
gdb/testsuite/gdb.mi/mi-record-changed.exp
gdb/testsuite/gdb.mi/mi-regs.exp
gdb/testsuite/gdb.mi/mi-reverse.exp
gdb/testsuite/gdb.mi/mi-stepi.exp
gdb/testsuite/gdb.mi/mi-stepn.exp
gdb/testsuite/gdb.mi/mi-sym-info.exp
gdb/testsuite/gdb.mi/mi-syn-frame.exp
gdb/testsuite/gdb.mi/mi-var-create-rtti.exp
gdb/testsuite/gdb.mi/mi-watch-nonstop.exp
gdb/testsuite/gdb.mi/pr11022.exp
gdb/testsuite/gdb.python/py-mi-events.exp
gdb/testsuite/gdb.python/py-mi-var-info-path-expression.exp
gdb/testsuite/gdb.trace/mi-trace-frame-collected.exp
gdb/testsuite/gdb.trace/mi-trace-unavailable.exp
gdb/testsuite/gdb.trace/mi-traceframe-changed.exp
gdb/testsuite/lib/mi-support.exp

index a6b16a094f847a38e6c5640746721a5787303e25..4261e4a7204793da01753b3ca0d9b466a11518f9 100644 (file)
@@ -1,3 +1,9 @@
+2020-10-13  Pedro Alves  <pedro@palves.net>
+
+       * lib/mi-support.exp (mi_clean_restart): New.
+       (mi_run_to_main): Delete.
+       All callers adjust to use mi_clean_restart / mi_runto_main.
+
 2020-10-13  Pedro Alves  <pedro@palves.net>
 
        * config/monitor.exp: Use "list -q".
index 30543e560082e5b0960cdf3438bc3036a2c52f5c..095815d1829356d3cfbc1fdfa7b99e16eb155ce8 100644 (file)
@@ -58,14 +58,7 @@ gdb_test_multiple "catch exception" $msg {
 load_lib mi-support.exp
 set MIFLAGS "-i=mi"
 
-gdb_exit
-if [mi_gdb_start] {
-    continue
-}
-
-mi_delete_breakpoints
-mi_gdb_reinitialize_dir $srcdir/$subdir
-mi_gdb_load ${binfile}
+mi_clean_restart $binfile
 
 ###################################################
 # 2. Try catching conditionnal failed assertion.  #
@@ -77,7 +70,7 @@ mi_gdb_load ${binfile}
 #  - continue, we should see the second failed assertion
 #  - continue, the program exits.
 
-if ![mi_run_to_main] then {
+if {[mi_runto_main] < 0} {
    fail "cannot run to main, testcase aborted"
    return 0
 }
index 63c6984bc664ffb92bdf6d1b00d040de1dfa29d0..103ec85f862b14a6ba3610d35ca46faab1ff6ec5 100644 (file)
@@ -58,21 +58,14 @@ gdb_test_multiple "catch exception" $msg {
 load_lib mi-support.exp
 set MIFLAGS "-i=mi"
 
-gdb_exit
-if [mi_gdb_start] {
-    continue
-}
-
-mi_delete_breakpoints
-mi_gdb_reinitialize_dir $srcdir/$subdir
-mi_gdb_load ${binfile}
+mi_clean_restart $binfile
 
 ####################################
 # 1. Try catching all exceptions.  #
 ####################################
 
 with_test_prefix "scenario 1" {
-    if ![mi_run_to_main] then {
+    if {[mi_runto_main] < 0} {
        fail "cannot run to main, testcase aborted"
        return 0
     }
@@ -130,7 +123,7 @@ continue_to_exception \
 #  - continue, the program exits.
 
 with_test_prefix "scenario 2" {
-    if ![mi_run_to_main] then {
+    if {[mi_runto_main] < 0} {
        fail "cannot run to main, testcase aborted"
        return 0
     }
index 06e466672ea77c7167051d5d495f93cd6fb49ba7..ef3dd24979019054f3b15959dadceb8e8c854e4f 100644 (file)
@@ -57,17 +57,14 @@ gdb_test_multiple "catch handlers" $msg {
 load_lib mi-support.exp
 set MIFLAGS "-i=mi"
 
-gdb_exit
-if [mi_gdb_start] {
-    continue
-}
+mi_clean_restart $binfile
 
 #############################################
 # 1. Try catching all exceptions handlers.  #
 #############################################
 
 with_test_prefix "scenario 1" {
-    if ![mi_run_to_main] then {
+    if {[mi_runto_main] < 0} {
        fail "cannot run to main, testcase aborted"
        return 0
     }
@@ -119,7 +116,7 @@ continue_to_exception_handler \
 #    but exit instead.
 
 with_test_prefix "scenario 2" {
-    if ![mi_run_to_main] then {
+    if {[mi_runto_main] < 0} {
        fail "cannot run to main, testcase aborted"
        return 0
     }
index 5c8b986e4554f2dc1bc2638496a3e5958b246fe0..4b5d2c10d585bd88d1367cac5acbf9e23e05ff44 100644 (file)
@@ -26,16 +26,9 @@ if {[gdb_compile_ada "${srcfile}" "${binfile}" executable [list debug]] != "" }
 load_lib mi-support.exp
 set MIFLAGS "-i=mi"
 
-gdb_exit
-if [mi_gdb_start] {
-    continue
-}
-
-mi_delete_breakpoints
-mi_gdb_reinitialize_dir $srcdir/$subdir
-mi_gdb_load ${binfile}
+mi_clean_restart $binfile
 
-if ![mi_run_to_main] then {
+if {[mi_runto_main] < 0} {
    fail "cannot run to main, testcase aborted"
    return 0
 }
index eeb8247a3bfe020543d36bf03da0006f3c69c54b..52c37c453485e46ebb279c98168233b1b1bb3bd2 100644 (file)
@@ -26,12 +26,9 @@ if {[gdb_compile_ada "${srcfile}" "${binfile}" executable [list debug]] != "" }
 load_lib mi-support.exp
 set MIFLAGS "-i=mi"
 
-gdb_exit
-if [mi_gdb_start] {
-    continue
-}
+mi_clean_restart $binfile
 
-if ![mi_run_to_main] then {
+if {[mi_runto_main] < 0} {
    fail "cannot run to main, testcase aborted"
    return 0
 }
index f948237558d5a4bfd8f13b81535e88892d8e3d6a..a2c0d0453e425ed1a62d7feba90b8cea8b87857f 100644 (file)
@@ -26,17 +26,10 @@ if {[gdb_compile_ada "${srcfile}" "${binfile}" executable [list debug additional
 load_lib mi-support.exp
 set MIFLAGS "-i=mi"
 
-gdb_exit
-if [mi_gdb_start] {
-    continue
-}
-
-mi_delete_breakpoints
-mi_gdb_reinitialize_dir $srcdir/$subdir
-mi_gdb_load ${binfile}
+mi_clean_restart $binfile
 
-if ![mi_run_to_main] then {
-   fail "cannot run to main, testcase aborted"
+if {[mi_runto_main] < 0} {
+    fail "cannot run to main, testcase aborted"
    return 0
 }
 
index fb4ca8d7ffb4273cdd08b5c5ba5f349ebe921718..703fabdacdcc334a67ae986bf7db5afe1872478a 100644 (file)
@@ -30,12 +30,9 @@ if {[gdb_compile_ada "${srcfile}" "${binfile}" executable \
 load_lib mi-support.exp
 set MIFLAGS "-i=mi"
 
-gdb_exit
-if {[mi_gdb_start]} {
-    continue
-}
+mi_clean_restart $binfile
 
-if {![mi_run_to_main]} then {
+if {[mi_runto_main] < 0} {
    fail "cannot run to main, testcase aborted"
    return 0
 }
index 71f26c02dee9c3c7d444a53b614af8b36758a14d..86df5680ddadacf488c743196910904f1ed3e429 100644 (file)
@@ -26,16 +26,9 @@ if {[gdb_compile_ada "${srcfile}" "${binfile}" executable [list debug]] != "" }
 load_lib mi-support.exp
 set MIFLAGS "-i=mi"
 
-gdb_exit
-if [mi_gdb_start] {
-    continue
-}
-
-mi_delete_breakpoints
-mi_gdb_reinitialize_dir $srcdir/$subdir
-mi_gdb_load ${binfile}
+mi_clean_restart $binfile
 
-if ![mi_run_to_main] then {
+if {[mi_runto_main] < 0} {
    fail "cannot run to main, testcase aborted"
    return 0
 }
index 5e07f1ebcc0075c31051fce4b347afe5f8b39041..56c8522e196267ba064eee7ee2249b1ec995599f 100644 (file)
@@ -26,16 +26,9 @@ if {[gdb_compile_ada "${srcfile}" "${binfile}" executable [list debug]] != "" }
 load_lib mi-support.exp
 set MIFLAGS "-i=mi"
 
-gdb_exit
-if [mi_gdb_start] {
-    continue
-}
-
-mi_delete_breakpoints
-mi_gdb_reinitialize_dir $srcdir/$subdir
-mi_gdb_load ${binfile}
+mi_clean_restart $binfile
 
-if ![mi_run_to_main] then {
+if {[mi_runto_main] < 0} {
    fail "cannot run to main, testcase aborted"
    return 0
 }
index 14e899221e35bc030ec840db73a998a49c6b38a4..196daff904e2a6363e059f093b8b528ca69594b8 100644 (file)
@@ -28,15 +28,9 @@ if {[gdb_compile_ada "${srcfile}" "${binfile}" executable debug] != "" } {
     return -1
 }
 
-if {[mi_gdb_start]} {
-    continue
-}
-
-mi_delete_breakpoints
-mi_gdb_reinitialize_dir $srcdir/$subdir
-mi_gdb_load ${binfile}
+mi_clean_restart $binfile
 
-if ![mi_run_to_main] then {
+if {[mi_runto_main] < 0} {
     fail "cannot run to main, testcase aborted"
     return 0
 }
index 4ef213b7a6ef9f7d0eea3e1c2fe7a25b32d441cf..09b89ce4e46243d512b701972e48a596f1c3f2d8 100644 (file)
@@ -32,16 +32,9 @@ foreach_with_prefix scenario {none all minimal} {
        return -1
     }
 
-    gdb_exit
-    if [mi_gdb_start] {
-       continue
-    }
-
-    mi_delete_breakpoints
-    mi_gdb_reinitialize_dir $srcdir/$subdir
-    mi_gdb_load ${binfile}
+    mi_clean_restart $binfile
 
-    if ![mi_run_to_main] then {
+    if {[mi_runto_main] < 0} {
        fail "cannot run to main, testcase aborted"
        return 0
     }
index f950855d8716f20b9db13762b78c44215603df5c..da09d7abedb72cd5a69e99579f362f0957cded49 100644 (file)
@@ -34,16 +34,9 @@ foreach_with_prefix scenario {none all minimal} {
        return -1
     }
 
-    gdb_exit
-    if [mi_gdb_start] {
-       continue
-    }
-
-    mi_delete_breakpoints
-    mi_gdb_reinitialize_dir $srcdir/$subdir
-    mi_gdb_load ${binfile}
+    mi_clean_restart $binfile
 
-    if ![mi_run_to_main] then {
+    if {[mi_runto_main] < 0} {
        fail "cannot run to main, testcase aborted"
        return 0
     }
index 01c67200581ea61d7ac7c8f211f745e5b1425eb1..d7e619191aec9d1f5391d0b95d2a86e1763eca18 100644 (file)
@@ -33,16 +33,9 @@ foreach_with_prefix scenario {none all minimal} {
        return -1
     }
 
-    gdb_exit
-    if [mi_gdb_start] {
-       continue
-    }
-
-    mi_delete_breakpoints
-    mi_gdb_reinitialize_dir $srcdir/$subdir
-    mi_gdb_load ${binfile}
+    mi_clean_restart $binfile
 
-    if ![mi_run_to_main] then {
+    if {[mi_runto_main] < 0} {
        fail "cannot run to main, testcase aborted"
        return 0
     }
index cc6441c8ec0d4ff74c4b6c6a1930fc91cf273fd1..54ef3b7143595d0ed1e13e979733c8b9d320a4e1 100644 (file)
 load_lib mi-support.exp
 set MIFLAGS "-i=mi"
 
-gdb_exit
-if [mi_gdb_start] {
-    continue
-}
-
 standard_testfile basics.c
 
 if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } {
@@ -103,8 +98,12 @@ proc register_tests { } {
     }
 }
 
+mi_clean_restart $binfile
+
 register_tests_no_exec
-mi_run_to_main
+
+mi_runto_main
+
 register_tests
 
 mi_gdb_exit
index 4eaed22191c9682999c9a439d756880070e00f9c..edd076ec3a5a940aca3f94a0d95f84b5a07c7fdb 100644 (file)
 load_lib mi-support.exp
 set MIFLAGS "-i=mi"
 
-gdb_exit
-if {[mi_gdb_start]} {
-    continue
-}
-
 #
 # Start here
 #
@@ -35,7 +30,8 @@ if {[gdb_compile_pthreads "$srcdir/$subdir/$srcfile" $binfile executable $option
     return -1
 }
 
-mi_run_to_main
+mi_clean_restart $binfile
+mi_runto_main
 check_mi_and_console_threads "at main"
 
 for {set i 0} {$i < 4} {incr i} {
index 3f0801986c4d5b6ecb7cc7dcbccf7f01126c2a61..85c48f2ea7cf8ea544d18b0abed700521c2cd664 100644 (file)
 load_lib mi-support.exp
 set MIFLAGS "-i=mi"
 
-gdb_exit
-if [mi_gdb_start] {
-    continue
-}
-
 standard_testfile
 
 if {[gdb_compile $srcdir/$subdir/$srcfile $binfile executable debug] != ""} {
@@ -40,7 +35,8 @@ if {[gdb_compile $srcdir/$subdir/$srcfile $binfile executable debug] != ""} {
 # If it doesn't, Bad Things Happen(TM).
 
 # Run to main
-mi_run_to_main
+mi_clean_restart $binfile
+mi_runto_main
 
 # Step over "foo = 0"
 mi_next "step over \"foo = 0\""
index 89227036251a7828abcaf5880228d59f9e149815..1fec75b0b93338fc5097dd0fee6d27a4f86566f1 100644 (file)
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-#
-# test gdb/792
-#
+# Test that children of classes are properly reported.  Regression
+# test for gdb/792.
 
 if { [skip_cplus_tests] } { continue }
 
 load_lib mi-support.exp
 set MIFLAGS "-i=mi"
 
-gdb_exit
-if [mi_gdb_start] {
-    continue
-}
-
 standard_testfile .cc
 
 if [get_compiler_info "c++"] {
@@ -38,10 +32,9 @@ if {[gdb_compile $srcdir/$subdir/$srcfile $binfile executable {debug c++}] != ""
   return -1
 }
 
-# Test that children of classes are properly reported
+mi_clean_restart $binfile
 
-# Run to main
-mi_run_to_main
+mi_runto_main
 
 mi_create_varobj "var1" "a" "create var for class A"
 
index 1149bb34c8dca135922beb508106d04c6077c1aa..3c594c8de4f7d424d22627a4a482ae39c0e1d003 100644 (file)
@@ -272,7 +272,7 @@ proc test_breakpoint_commands {} {
        "\\^done,[mi_make_breakpoint_table [list $bp_no_script]]" \
         "breakpoint commands: check that commands are cleared"
 
-    mi_run_to_main
+    mi_runto_main
 
     mi_create_breakpoint "basics.c:callee2" \
        "breakpoint commands: insert breakpoint at basics.c:callee2, again" \
index 5dbedd8302fba50e49695b59a56934d6b451199f..3f3acfd9967ad61bf45279fc3a59ddf88e78057e 100644 (file)
@@ -46,15 +46,13 @@ if { [gdb_compile $srcdir/$subdir/$srcfile $binfile executable $exec_opts] != ""
 proc test_insert_delete_modify { } {
     global mi_gdb_prompt
     global lib_sl1 lib_sl2
+    global binfile
 
-    gdb_exit
-    if [mi_gdb_start] {
-       continue
-    }
+    mi_clean_restart $binfile
 
     mi_load_shlibs $lib_sl1 $lib_sl2
 
-    mi_run_to_main
+    mi_runto_main
 
     mi_gdb_test "break marker" \
        {(&.*)*.*~"Breakpoint 2 at.*\\n".*=breakpoint-created,bkpt=\{number="2",type="breakpoint".*\}.*\n\^done}
index 60a098e6013aee12b0d366492f21fbb2d0608634..0f5d33599a994b457d1f387e807b7d59001c7650 100644 (file)
@@ -53,15 +53,12 @@ proc make_breakpoints_pattern { expect_fixed_output bp_num loc1_en loc2_en } {
 proc do_test { mi_version use_fix_flag expect_fixed_output } {
     with_test_prefix "mi_version=${mi_version}" {
        with_test_prefix "use_fix_flag=${use_fix_flag}" {
-           global MIFLAGS decimal
+           global MIFLAGS decimal binfile
            set MIFLAGS "-i=mi${mi_version}"
 
-           gdb_exit
-           if {[mi_gdb_start]} {
-               return
-           }
+           mi_clean_restart $binfile
 
-           mi_run_to_main
+           mi_runto_main
 
            if $use_fix_flag {
                mi_gdb_test "-fix-multi-location-breakpoint-output" "\\^done" \
index 14e820fa35023099f6f063633461b35e89ac5f30..54383f66d65f359d0955c7acb157b93deac41f41 100644 (file)
@@ -27,13 +27,8 @@ if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {deb
     return -1
 }
 
-if [mi_gdb_start] {
-    continue
-}
-mi_delete_breakpoints
-mi_gdb_reinitialize_dir $srcdir/$subdir
-mi_gdb_load ${binfile}
-if {![mi_run_to_main]} {
+mi_clean_restart $binfile
+if {[mi_runto_main] < 0} {
     return -1
 }
 set libstdcxx_probe_tests_supported [expr ![mi_skip_libstdcxx_probe_tests]]
index b25380703166e75cae016188bb04af0edb64cbc1..21f3fe03db6a87ecf59ff0221076a1cae9b632aa 100644 (file)
@@ -18,11 +18,6 @@ if {[skip_shlib_tests]} {
     return -1
 }
 
-gdb_exit
-if [mi_gdb_start] {
-    continue
-}
-
 if {[get_compiler_info]} {
     warning "Could not get compiler info"
     untested "no compiler info"
@@ -44,7 +39,9 @@ if { [gdb_compile_shlib "${srcdir}/${subdir}/${srcfile2}" ${binfile2} {debug}] !
     untested "failed to compile shared library"
     return -1
 }
-mi_run_to_main
+
+mi_clean_restart $binfile
+mi_runto_main
 
 # test -catch-load
 mi_gdb_test "111-gdb-set auto-solib-add on" "111\\^done" "catch-load: auto-solib-add on"
@@ -66,13 +63,8 @@ gdb_expect {
     }
 }
 
-mi_gdb_exit
-
-
-if [mi_gdb_start] {
-    continue
-}
-mi_run_to_main
+mi_clean_restart $binfile
+mi_runto_main
 
 # test -catch-unload
 mi_gdb_test "111-gdb-set auto-solib-add on" "111\\^done" "catch-unload: auto-solib-add on"
index 214cc8a479e64320efcbf83d5faeddf10d649bab..ad06c7c05dac851b67b0bc7db1bf34ffab312d35 100644 (file)
 load_lib mi-support.exp
 set MIFLAGS "-i=mi"
 
-gdb_exit
-if [mi_gdb_start] {
-    continue
-}
-
 standard_testfile basics.c
 
 if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } {
@@ -34,6 +29,8 @@ if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {deb
      return -1
 }
 
+mi_clean_restart $binfile
+
 mi_gdb_test "-interpreter-exec" \
   {\^error,msg="-interpreter-exec: Usage: -interpreter-exec interp command"} \
   "-interpreter-exec with no arguments"
@@ -59,7 +56,7 @@ mi_gdb_test "-interpreter-exec console \"file $binfile\"" \
   {~"Reading symbols from .*mi-cli...\\n".*} \
   "-interpreter-exec console \"file \$binfile\""
 
-mi_run_to_main
+mi_runto_main
 
 set line_main_head    [gdb_get_line_number "main ("]
 set line_main_body    [expr $line_main_head + 2]
index 2d653c0e801af630b0e67e02ec5e26fbf88ecd40..1715c764d24021a7ddd9b1fb3b67fac29b453a00 100644 (file)
@@ -28,12 +28,11 @@ if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {deb
 
 proc test_command_param_changed { } {
     global scheduler_locking_supported
+    global binfile
 
     with_test_prefix "cmd param" {
-       if [mi_gdb_start] {
-           return
-       }
-       mi_run_to_main
+       mi_clean_restart $binfile
+       mi_runto_main
 
        if { $scheduler_locking_supported } {
            foreach opt { "on" "off" "step" } {
index 626d72d60e169d9fe3238da52f6902a5df9d54ca..a1ab50d3d9c1e7851f747cc2508d709ad59adec7 100644 (file)
 load_lib mi-support.exp
 set MIFLAGS "-i=mi"
 
-gdb_exit
-if [mi_gdb_start] {
-    continue
-}
-
 standard_testfile .cc
 
 if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug c++}] != "" } {
@@ -31,7 +26,9 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debu
      return -1
 }
 
-mi_run_to_main
+mi_clean_restart $binfile
+
+mi_runto_main
 
 mi_gdb_test "1-complete br" \
             "1\\^done,completion=\"break\",matches=\\\[.*\"break\",.*\"break-range\".*\\\],max_completions_reached=\"0\"" \
index e334d0bf0f39352fc1217371faa443866734d9e5..02e70c01f807947b781182c4ee4df0dbd1d09b97 100644 (file)
@@ -58,7 +58,9 @@ if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {deb
      return -1
 }
 
-mi_run_to_main
+mi_gdb_reinitialize_dir $srcdir/$subdir
+mi_gdb_load ${binfile}
+mi_runto_main
 
 # The output we get from the target depends on how it is hosted.  If
 # we are semihosted (e.g., the sim or a remote target that supports
index a9b8362659b670f1935c4c5e9640c95c60994bb5..1027488eeb4ab260574a7c72897e98ea3cf374ae 100644 (file)
 load_lib mi-support.exp
 set MIFLAGS "-i=mi"
 
-gdb_exit
-if [mi_gdb_start] {
-    continue
-}
-
 standard_testfile basics.c
 
 if {[build_executable $testfile.exp $testfile $srcfile {debug}] == -1} {
@@ -30,6 +25,7 @@ if {[build_executable $testfile.exp $testfile $srcfile {debug}] == -1} {
      return -1
 }
 
-mi_run_to_main
+mi_clean_restart $binfile
+mi_runto_main
 
 mi_gdb_test "-target-detach" "=thread-exited,id=\"1\".*=thread-group-exited,id=\"i1\".*" "detach"
index d17d957ee22a2a4b79184a6f6f3c3cc00f548dd1..87f8c72251c3a6b08facc4bbf22a6003f508e672 100644 (file)
 load_lib mi-support.exp
 set MIFLAGS "-i=mi"
 
-gdb_exit
-if [mi_gdb_start] {
-    continue
-}
-
 standard_testfile basics.c
 
 if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } {
@@ -244,7 +239,8 @@ proc test_disassembly_bogus_args {} {
 
 }
 
-mi_run_to_main
+mi_clean_restart $binfile
+mi_runto_main
 test_disassembly_only
 test_disassembly_with_opcodes
 test_disassembly_mixed
index ce0670fea2966958906f07d312421618fe905abe..6254787f2124d48721c5ae5ae08320504fd96b32 100644 (file)
 load_lib mi-support.exp
 set MIFLAGS "-i=mi"
 
-gdb_exit
-if [mi_gdb_start] {
-    continue
-}
-
 standard_testfile
 
 if {[build_executable $testfile.exp $testfile $srcfile {debug}] == -1} {
@@ -29,12 +24,11 @@ if {[build_executable $testfile.exp $testfile $srcfile {debug}] == -1} {
     return -1
 }
 
-mi_delete_breakpoints
-
 set bp_location1 [gdb_get_line_number "set breakpoint 1 here"]
 set dp_location1 [gdb_get_line_number "set dprintf 1 here"]
 
-mi_run_to_main
+mi_clean_restart $binfile
+mi_runto_main
 
 set i 0
 mi_gdb_test "[incr i]-dprintf-insert" \
index f10b49cee0f8e85cc3082b19e2cffe846d327bfd..b8a133a19c0aa59de628a02bca460af5df58e7b9 100644 (file)
 load_lib mi-support.exp
 set MIFLAGS "-i=mi"
 
-gdb_exit
-if [mi_gdb_start] {
-    continue
-}
-
 standard_testfile
 
 if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } {
@@ -31,6 +26,9 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debu
 proc test_list_thread_groups { } {
     global hex
     global decimal
+    global binfile
+
+    mi_clean_restart
 
     # Before any run, exit-code should not be present.
     mi_gdb_test \
@@ -38,8 +36,10 @@ proc test_list_thread_groups { } {
        "122\\^done,groups=\\\[\{id=\"i1\",type=\"process\"\}\]" \
        "-list-thread-groups before run shows no exit-code"
 
+    mi_clean_restart $binfile
+
     with_test_prefix "first run" {
-       mi_run_to_main
+       mi_runto_main
 
        # During the run, exit-code should not be present.
        mi_gdb_test \
@@ -59,7 +59,7 @@ proc test_list_thread_groups { } {
     }
 
     with_test_prefix "second run" {
-       mi_run_to_main
+       mi_runto_main
 
        # Write the exit code we want in the global var
        mi_gdb_test "set var exit_code = 8" ".*\\^done" "write exit code"
index acc9b92e398f9e30f8d20fab974c2e42f3eb8464..658da39bce3db6199ef5585cfde29350f1861a42 100644 (file)
 load_lib mi-support.exp
 set MIFLAGS "-i=mi"
 
-gdb_exit
-if [mi_gdb_start] {
-    continue
-}
-
 standard_testfile "mi-read-memory"
  
 if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}.c" "${binfile}" executable {debug}] != "" } {
@@ -32,7 +27,8 @@ if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}.c" "${binfile}" executable {d
      return -1
 }
 
-mi_run_to_main
+mi_clean_restart $binfile
+mi_runto_main
 mi_next_to "main" "" "mi-read-memory.c" "20" "next at main"
 
 mi_gdb_test "1-data-write-memory-bytes"\
index e7ee1b96e461e9479399b87ecc384b4fc1e0c393..de5657d2823b675904719af8a7c6fcb79318a90f 100644 (file)
@@ -26,12 +26,9 @@ if {[prepare_for_testing "failed to prepare" ${testfile} \
     return -1
 }
 
-gdb_exit
-if {[mi_gdb_start]} {
-    continue
-}
+mi_clean_restart $binfile
 
-mi_run_to_main
+mi_runto_main
 
 
 # Patterns to skip optional system modules that appear with later versions of GFortran.
index c5cec8d6c294fa8e1d018c169682f34ff65e864b..420fe7a878d588b8cb99170d38d15eeeff6c20f4 100644 (file)
@@ -58,17 +58,16 @@ proc breakpoint_address {bpnum} {
 # breakpoints in different functions.
 
 proc_with_prefix do_floating_varobj_test {} {
-    global srcfile
+    global srcfile binfile
     global hex
     global expect_out
 
-    gdb_exit
-    if {[mi_gdb_start]} then {
+    if {[mi_clean_restart $binfile]} {
        fail "couldn't start gdb"
        return
     }
 
-    mi_run_to_main
+    mi_runto_main
 
     # Create a floating varobj for $pc.
     mi_gdb_test "-var-create --thread 1 --frame 0 - @ \$pc" \
@@ -111,16 +110,15 @@ proc_with_prefix do_floating_varobj_test {} {
 # counter changes (without substantially changing the stack).
 
 proc_with_prefix do_fixed_varobj_test {} {
-    global srcfile
+    global srcfile binfile
     global hex
 
-    gdb_exit
-    if {[mi_gdb_start]} then {
+    if {[mi_clean_restart $binfile] != 0} {
        fail "couldn't start gdb"
        return
     }
 
-    mi_run_to_main
+    mi_runto_main
 
     # Run to the function 'callee3' so we have several frames.
     mi_create_breakpoint "basics.c:callee3" \
index 49b2e8e2e01f5a12e44b4666a4871ff7de4e22bb..347b01c10fef5db25b572eadc355205431d07b21 100644 (file)
@@ -45,7 +45,7 @@ if {[mi_gdb_load $binfile] < 0} {
 # When testing a cross configuration, we need to be sure to first
 # connect to the target.  If we didn't do that, GDB would try running
 # the command against the default run target.  The usual way to do
-# that and cover all targets is to run to main, with mi_run_to_main.
+# that and cover all targets is to run to main, with mi_runto_main.
 # However, with native configurations, -info-os should work before
 # running any program, so we want to avoid "run".  Using
 # mi_gdb_target_load directly instead achieves this.
index 58f974a54dd3fb49ec9b092669a511279b13fb14..0f8f59b5a416293ff067c1dc25f9bac080f71333 100644 (file)
@@ -31,17 +31,14 @@ if {[prepare_for_testing "failed to prepare" $exefile $srcfile {debug c++}]} {
     return -1
 }
 
-gdb_exit
-if {[mi_gdb_start]} {
-    continue
-}
+mi_clean_restart $binfile
 
 # Turn off the pending breakpoint queries.
 mi_gdb_test "-interpreter-exec console \"set breakpoint pending off\"" \
   {=cmd-param-changed,param=\"breakpoint pending\",.*\^done} \
   "-interpreter-exec console \"set breakpoint pending off\""
 
-mi_run_to_main
+mi_runto_main
 
 # Run to a location in the file.
 set bp_location [gdb_get_line_number "set breakpoint here"]
index 45401432ee562c35b7e01f451bf054d2d001fc69..6da365ef68ed191c1dea1f8bb21cd6bbea26b0b9 100644 (file)
 load_lib mi-support.exp
 set MIFLAGS "-i=mi"
 
-gdb_exit
-if [mi_gdb_start] {
-    continue
-}
-
 standard_testfile basics.c
 set opts {debug}
 
@@ -29,7 +24,9 @@ if [build_executable $testfile.exp $testfile $srcfile $opts] {
     return -1
 }
 
-if {[mi_run_to_main] < 0} {
+mi_clean_restart $binfile
+
+if {[mi_runto_main] < 0} {
     return -1
 }
 
index ff27fa33160b8f5e3c36203f890bae4af8be42e5..3e58754c9a42a60b284acba044490a0fc0b6e9ff 100644 (file)
@@ -21,11 +21,6 @@ if { ![support_displaced_stepping] } {
 load_lib mi-support.exp
 set MIFLAGS "-i=mi"
 
-gdb_exit
-if {[mi_gdb_start]} {
-    continue
-}
-
 #
 # Start here
 #
@@ -36,14 +31,13 @@ if {[gdb_compile_pthreads "$srcdir/$subdir/$srcfile" $binfile executable $option
     return -1
 }
 
-mi_gdb_reinitialize_dir $srcdir/$subdir
-mi_gdb_load $binfile
+mi_clean_restart $binfile
 
 mi_gdb_test "-gdb-set non-stop 1" ".*"
 mi_gdb_test "-gdb-set mi-async 1" ".*"
 mi_detect_async
 
-if { [mi_run_to_main] < 0 } {
+if { [mi_runto_main] < 0 } {
     continue
 }
 
@@ -53,7 +47,9 @@ mi_expect_stop "exited-normally" "" "" "" "" "" "finished exec continue"
 
 # Run the program again.
 
-if { [mi_run_to_main] < 0 } {
+mi_delete_breakpoints
+
+if { [mi_runto_main] < 0 } {
     continue
 }
 
index 7f98bee409603e8fe7f120d0455695f2e5461b06..bb4520e933700bdca571f7fff272942d4864caf2 100644 (file)
@@ -22,15 +22,6 @@ if { ![support_displaced_stepping] } {
 load_lib mi-support.exp
 set MIFLAGS "-i=mi"
 
-gdb_exit
-
-save_vars { GDBFLAGS } {
-    append GDBFLAGS " -ex \"set non-stop on\""
-    if {[mi_gdb_start]} {
-       continue
-    }
-}
-
 proc mi_nonstop_resume { command test } {
     if { [mi_send_resuming_command $command $test] != 0 } {
        # If a resume fails, assume non-stop is broken or unsupported
@@ -50,13 +41,16 @@ if {[gdb_compile_pthreads "$srcdir/$subdir/$srcfile" $binfile executable $option
     return -1
 }
 
-mi_gdb_reinitialize_dir $srcdir/$subdir
-mi_gdb_load $binfile
+
+save_vars { GDBFLAGS } {
+    append GDBFLAGS " -ex \"set non-stop on\""
+    mi_clean_restart $binfile
+}
 
 mi_gdb_test "-gdb-set mi-async 1" ".*"
 mi_detect_async
 
-if { [mi_run_to_main] < 0 } {
+if { [mi_runto_main] < 0 } {
     continue
 }
 
index 35a6315470e55f088e70e18b95cff044a20714aa..ebbdb4186a4d464b5bab418ef325d9a2b22945dc 100644 (file)
@@ -24,11 +24,6 @@ if { ![support_displaced_stepping] } {
 load_lib mi-support.exp
 set MIFLAGS "-i=mi"
 
-gdb_exit
-if {[mi_gdb_start]} {
-    continue
-}
-
 proc mi_nonstop_resume { command test } {
     if { [mi_send_resuming_command $command $test] != 0 } {
        # If a resume fails, assume non-stop is broken or unsupported
@@ -49,14 +44,13 @@ if {[gdb_compile "$srcdir/$subdir/$srcfile" \
     return -1
 }
 
-mi_gdb_reinitialize_dir $srcdir/$subdir
-mi_gdb_load $binfile
+mi_clean_restart $binfile
 
 mi_gdb_test "-gdb-set non-stop 1" ".*"
 mi_gdb_test "-gdb-set mi-async 1" ".*"
 mi_detect_async
 
-if { [mi_run_to_main] < 0 } {
+if { [mi_runto_main] < 0 } {
     continue
 }
 
index c020c6ac1b7ddf0f48fc42c8041839042eebad08..aa0e81c84ca7c9e78367492516c60250ad30373a 100644 (file)
@@ -21,11 +21,6 @@ if { ![support_displaced_stepping] } {
 load_lib mi-support.exp
 set MIFLAGS "-i=mi"
 
-gdb_exit
-if {[mi_gdb_start]} {
-    continue
-}
-
 #
 # Start here
 #
@@ -36,14 +31,13 @@ if {[gdb_compile_pthreads "$srcdir/$subdir/$srcfile" $binfile executable $option
     return -1
 }
 
-mi_gdb_reinitialize_dir $srcdir/$subdir
-mi_gdb_load $binfile
+mi_clean_restart $binfile
 
 mi_gdb_test "-gdb-set non-stop 1" ".*"
 mi_gdb_test "-gdb-set mi-async 1" ".*"
 mi_detect_async
 
-if { [mi_run_to_main] < 0 } {
+if { [mi_runto_main] < 0 } {
     continue
 }
 
index d311e1fe89bc5133cb1180d3ef1fc72bc1240b39..3e99b5f0c6f902339235033be27ed9977fe707f7 100644 (file)
@@ -21,11 +21,6 @@ if { ![support_displaced_stepping] } {
 load_lib mi-support.exp
 set MIFLAGS "-i=mi"
 
-gdb_exit
-if {[mi_gdb_start]} {
-    continue
-}
-
 #
 # Start here
 #
@@ -36,14 +31,13 @@ if {[gdb_compile_pthreads "$srcdir/$subdir/$srcfile" $binfile executable $option
     return -1
 }
 
-mi_gdb_reinitialize_dir $srcdir/$subdir
-mi_gdb_load $binfile
+mi_clean_restart $binfile
 
 mi_gdb_test "-gdb-set non-stop 1" ".*"
 mi_gdb_test "-gdb-set mi-async 1" ".*"
 mi_detect_async
 
-if { [mi_run_to_main] < 0 } {
+if { [mi_runto_main] < 0 } {
     continue
 }
 
index 27101cae22c344c13db273c57197ac406009d621..6f4800aa912be04ca63a70ee07077326b1c05a7b 100644 (file)
@@ -26,11 +26,6 @@ if { ![support_displaced_stepping] } {
 load_lib mi-support.exp
 set MIFLAGS "-i=mi"
 
-gdb_exit
-if {[mi_gdb_start]} {
-    continue
-}
-
 #
 # Start here
 #
@@ -41,14 +36,13 @@ if {[gdb_compile_pthreads "$srcdir/$subdir/$srcfile" $binfile executable $option
     return -1
 }
 
-mi_gdb_reinitialize_dir $srcdir/$subdir
-mi_gdb_load $binfile
+mi_clean_restart $binfile
 
 mi_gdb_test "-gdb-set non-stop 1" ".*"
 mi_gdb_test "-gdb-set mi-async 1" ".*"
 mi_detect_async
 
-if { [mi_run_to_main] < 0 } {
+if { [mi_runto_main] < 0 } {
     continue
 }
 
index a9b8dbce62af6210aeef781bcb88cbe14df68c3d..7c1047eeea0bee3b71c09470170ae3d2c792eaa6 100644 (file)
 load_lib mi-support.exp
 set MIFLAGS "-i=mi"
 
-gdb_exit
-if [mi_gdb_start] {
-    continue
-}
-
 standard_testfile
 
 if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } {
@@ -30,8 +25,9 @@ if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {deb
      return -1
 }
 
+mi_clean_restart $binfile
+mi_runto_main
 
-mi_run_to_main
 mi_next_to "main" "" "mi-read-memory.c" "20" "next at main"
 
 mi_gdb_test "1-data-read-memory" \
index bef48d602d42ee6b58802b3e3b6259db2dd6e6d7..bed77c89d15f2fc92e0ad1dc1d00728e6fbb1d0d 100644 (file)
@@ -26,10 +26,9 @@ if { [gdb_compile "$srcdir/$subdir/$srcfile" $binfile \
 
 load_lib mi-support.exp
 
-if [mi_gdb_start] {
-    return
-}
-mi_run_to_main
+mi_clean_restart $binfile
+
+mi_runto_main
 
 mi_gdb_test "record" ".*=record-started,thread-group=\"i${decimal}\",method=\"full\".*\\^done" \
     "record"
index 81ff8acfde0c93efca7a5c309a16f579adc1aac1..13ab59c13576a8163b7f2df5c9dcbc8ce3090992 100644 (file)
 load_lib mi-support.exp
 set MIFLAGS "-i=mi"
 
-gdb_exit
-if [mi_gdb_start] {
-    continue
-}
-
 standard_testfile basics.c
 
 if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } {
@@ -110,8 +105,10 @@ proc sparc_register_tests { } {
 }
 
 if [istarget "sparc-*-*"] then {
+    mi_clean_restart
     sparc_register_tests_no_exec
-    mi_run_to_main
+    mi_clean_restart $binfile
+    mi_runto_main
     sparc_register_tests
 } else {
     verbose "mi-regs.exp tests ignored for this target"
index 091173ea82918362957c72467836653adba9cba6..f92450eb2d66969efaab50fe0ae2a9318a3536a0 100644 (file)
@@ -34,11 +34,6 @@ if ![supports_reverse] {
 load_lib mi-support.exp
 set MIFLAGS "-i=mi"
 
-gdb_exit
-if [mi_gdb_start] {
-    continue
-}
-
 standard_testfile basics.c
 
 if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } {
@@ -46,7 +41,8 @@ if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {deb
      return -1
 }
 
-mi_run_to_main
+mi_clean_restart $binfile
+mi_runto_main
 
 if [supports_process_record] {
     # Activate process record/replay
index a1efdf78e2d670010a3b6ccdb7031b56ec65aeb0..1f3e5593a069a9aa303936b37fd54a113c2b287d 100644 (file)
 load_lib mi-support.exp
 set MIFLAGS "-i=mi"
 
-gdb_exit
-if [mi_gdb_start] {
-    continue
-}
-
 standard_testfile basics.c
 
 if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } {
@@ -68,7 +63,8 @@ proc test_stepi_nexti {} {
     }
 }
 
-mi_run_to_main
+mi_clean_restart $binfile
+mi_runto_main
 test_stepi_nexti
 
 mi_gdb_exit
index 4725da15e43d371c2c6d6cce2c57dd1049bb0ebf..9a0a68d5c0021f665be1857a287b145ca21f60ea 100644 (file)
 load_lib mi-support.exp
 set MIFLAGS "-i=mi"
 
-gdb_exit
-if [mi_gdb_start] {
-    continue
-}
-
 standard_testfile
 
 set opts {debug}
@@ -31,7 +26,9 @@ if [build_executable ${testfile}.exp ${testfile} ${srcfile} $opts] {
     return -1
 }
 
-if {[mi_run_to_main] < 0} {
+mi_clean_restart $binfile
+
+if {[mi_runto_main] < 0} {
     return -1
 }
 
index 152a186e02c9ee5d6b59cb9d4b58faf14e119dc8..f12b758c2f6cf4d5d6bc4e40bce77e5701eb531c 100644 (file)
@@ -33,12 +33,9 @@ if {[prepare_for_testing "failed to prepare" ${testfile} \
     return -1
 }
 
-gdb_exit
-if {[mi_gdb_start]} {
-    continue
-}
+mi_clean_restart $binfile
 
-mi_run_to_main
+mi_runto_main
 
 set qstr "\"\[^\"\]+\""
 set fun_re "\{line=\"$decimal\",name=${qstr},type=${qstr},description=${qstr}\}"
index 48e872ab669e0a2df50b60b0309208e424cb79c1..4207f31647a4a0ecc6572fb0cd8cb19bc09bd9d9 100644 (file)
@@ -32,9 +32,9 @@ if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {deb
      return -1
 }
 
-mi_gdb_exit
-mi_gdb_start
-mi_run_to_main
+mi_clean_restart $binfile
+
+mi_runto_main
 
 mi_create_breakpoint "foo" \
     "insert breakpoint foo" \
index a64529a86e37be9704b09ac7d1dc839fc140cd50..3ad3b5c682926a7c1f2f9cc7a4b60e2c3aca7fe4 100644 (file)
 load_lib mi-support.exp
 set MIFLAGS "-i=mi"
 
-gdb_exit
-if [mi_gdb_start] {
-    continue
-}
-
 standard_testfile .c
 set opts {debug}
 
@@ -28,11 +23,9 @@ if [build_executable $testfile.exp $testfile $srcfile $opts] {
     return -1
 }
 
-mi_delete_breakpoints
-mi_gdb_reinitialize_dir $srcdir/$subdir
-mi_gdb_load ${binfile}
+mi_clean_restart $binfile
 
-if ![mi_run_to_main] {
+if {[mi_runto_main] < 0} {
     untested "could not run to main"
     return -1
 }
index fc2872d705d169edf3f0949364e68df72b91dba6..6b56f384239a330a50a1d015e94639e7c82584bf 100644 (file)
@@ -25,11 +25,6 @@ if { ![support_displaced_stepping] } {
 load_lib mi-support.exp
 set MIFLAGS "-i=mi"
 
-gdb_exit
-if {[mi_gdb_start]} {
-    continue
-}
-
 proc mi_nonstop_resume { command test } {
     if { [mi_send_resuming_command $command $test] != 0 } {
        # If a resume fails, assume non-stop is broken or unsupported
@@ -48,14 +43,13 @@ if {[gdb_compile "$srcdir/$subdir/$srcfile" $binfile executable {debug}] != "" }
     return -1
 }
 
-mi_gdb_reinitialize_dir $srcdir/$subdir
-mi_gdb_load $binfile
+mi_clean_restart $binfile
 
 mi_gdb_test "-gdb-set non-stop 1" ".*"
 mi_gdb_test "-gdb-set mi-async 1" ".*"
 mi_detect_async
 
-if { [mi_run_to_main] < 0 } {
+if { [mi_runto_main] < 0 } {
     continue
 }
 
index ffd368742463a3520bbdf41c8a9825023c2967cc..850261b83e19e6113a2a12edcab0c6570aebaa22 100644 (file)
@@ -29,12 +29,10 @@ if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {deb
 
 proc test_memory_changed_observer { mi_command } {
     with_test_prefix "${mi_command}" {
-       global srcfile
+       global srcfile binfile
 
-       if [mi_gdb_start] {
-           return
-       }
-       mi_run_to_main
+       mi_clean_restart $binfile
+       mi_runto_main
 
        set line_number [gdb_get_line_number "break here"]
        mi_gdb_test "-break-insert ${srcfile}:${line_number}" \
index 9f2d7dc13c6a63026e9c29a153f09ffbb81c208d..f76a4719e4ed4633e06ade3496c9ac70f32e60cc 100644 (file)
@@ -49,7 +49,8 @@ if [is_remote host] {
 }
 
 mi_gdb_test "-file-exec-and-symbols ${filename}"  ".*\\^done" "file-exec-and-symbols operation"
-mi_run_to_main
+mi_gdb_load ${binfile}
+mi_runto_main
 
 
 # register the python event handlers with test-events command
index 9b82355d14e4c35c26ed8eaaaf49bde2cbf589c9..2e611c7d964a2113676c54c51100e0e3d613f560 100644 (file)
 load_lib mi-support.exp
 set MIFLAGS "-i=mi"
 
-gdb_exit
-if {[mi_gdb_start]} {
-    continue
-}
-
 #
 # Start here
 #
@@ -32,6 +27,8 @@ if {[gdb_compile "$srcdir/$subdir/$srcfile" $binfile executable {debug}] != "" }
     return -1
 }
 
+mi_clean_restart $binfile
+
 # Skip all tests if Python scripting is not enabled.
 if { [mi_skip_python_tests] } { continue }
 
@@ -48,9 +45,7 @@ mi_gdb_test "set python print-stack full" \
   ".*\\^done" \
   "set python print-stack full"
 
-
-mi_run_to_main
-
+mi_runto_main
 
 mi_continue_to_line [gdb_get_line_number "next line" ${srcfile}] \
   "step to breakpoint"
index 969fe2755c6ed729b52ad59db64ba7fec22800de..4c7c103605cf77813e33409042816a2517c74a1c 100644 (file)
@@ -41,10 +41,8 @@ gdb_exit
 load_lib mi-support.exp
 set MIFLAGS "-i=mi"
 
-if [mi_gdb_start] {
-    return
-}
-mi_run_to_main
+mi_clean_restart $binfile
+mi_runto_main
 
 mi_gdb_test "-break-insert end" \
     "\\^done,bkpt=\{number=\"${decimal}\",type=\"breakpoint\".*\"\}" \
index 77923a510c2f8d2f3d13bd8d35f378a3fd506472..4abb92be1075ab7614701acb87d005fc72f6e68a 100644 (file)
@@ -36,10 +36,8 @@ gdb_exit
 load_lib mi-support.exp
 set MIFLAGS "-i=mi"
 
-if [mi_gdb_start] {
-    return
-}
-mi_run_to_main
+mi_clean_restart $binfile
+mi_runto_main
 
 mi_gdb_test "-break-insert marker" \
     "\\^done,bkpt=\{number=\"${decimal}\",type=\"breakpoint\".*\"\}" \
index f0be9a8b4f4fe361d4d9c8d4fbac2d7d21b5f4c6..a4c7cf6f6b7b6b726205693af5cc435dd1e257c1 100644 (file)
@@ -49,10 +49,7 @@ proc test_tfind_tfile { } {
        global decimal
        global tfile_basic
 
-       if [mi_gdb_start] {
-           return
-       }
-       mi_gdb_load ${binfile}
+       mi_clean_restart $binfile
 
        mi_gdb_test "-target-select tfile ${tfile_basic}" \
            ".*=breakpoint-created,bkpt=\{number=\"${decimal}\",type=\"tracepoint\",disp=\"keep\",enabled=\"y\",.*,func=\"write_basic_trace_file\".*\\^connected" \
@@ -124,11 +121,10 @@ gdb_exit
 proc test_tfind_remote { } {
     with_test_prefix "remote" {
        global decimal
+       global binfile
 
-       if [mi_gdb_start] {
-           return
-       }
-       mi_run_to_main
+       mi_clean_restart $binfile
+       mi_runto_main
 
        mi_gdb_test "-break-insert end" "\\^done.*" "break end"
        mi_gdb_test "-break-insert -a func2" "\\^done.*" "break func2"
index ea59288443eaac0ec92e084014c1229d967aefaf..3dea699a0b2997a10670166067e359663fb40f6a 100644 (file)
@@ -1023,28 +1023,41 @@ proc mi_run_with_cli {args} {
     return [eval mi_run_cmd_full 0 $args]
 }
 
-#
-# Just like run-to-main but works with the MI interface
-#
-
-proc mi_run_to_main { } {
-    global suppress_flag
-    if { $suppress_flag } {
-       return -1
-    }
+# Starts fresh GDB binary and loads an optional executable into GDB.
+# Usage: mi_clean_restart [executable]
+# EXECUTABLE is the basename of the binary.
+# Return -1 if starting gdb or loading the executable failed.
 
+proc mi_clean_restart { args } {
     global srcdir
     global subdir
-    global binfile
-    global srcfile
+    global errcnt
+    global warncnt
+
+    if { [llength $args] > 1 } {
+       error "bad number of args: [llength $args]"
+    }
+
+    gdb_exit
+
+    # This is a clean restart, so reset error and warning count.
+    set errcnt 0
+    set warncnt 0
+
+    if {[mi_gdb_start]} {
+       return -1
+    }
 
-    mi_delete_breakpoints
     mi_gdb_reinitialize_dir $srcdir/$subdir
-    mi_gdb_load ${binfile}
 
-    mi_runto_main
-}
+    if { [llength $args] >= 1 } {
+       set executable [lindex $args 0]
+       set binfile [standard_output_file ${executable}]
+       return [mi_gdb_load ${binfile}]
+    }
 
+    return 0
+}
 
 # Just like gdb's "runto" proc, it will run the target to a given
 # function.  The big difference here between mi_runto and mi_execute_to