Introduce mi_runto_main
authorPedro Alves <pedro@palves.net>
Wed, 2 Sep 2020 22:06:19 +0000 (23:06 +0100)
committerPedro Alves <pedro@palves.net>
Tue, 13 Oct 2020 21:28:03 +0000 (22:28 +0100)
This adds an mi_runto_main routine, very much like the runto_main CLI
counterpart.

Note there's already a mi_run_to_main (extra underscore in "run_to"),
but unlike its intro comment says, that does more than the CLI's
runto_main -- it also starts GDB.  I would like to eliminate that
other one by introducing a mi_clean_restart function instead.  That is
done later in the series.

gdb/testsuite/ChangeLog:

* lib/mi-support.exp (mi_runto_main): New proc.
(mi_run_to_main): Use it.
* gdb.mi/mi-catch-cpp-exceptions.exp: Likewise.
* gdb.mi/mi-var-cmd.exp: Likewise.
* gdb.mi/mi-var-invalidate.exp: Likewise.
* mi-var-list-children-invalid-grandchild.exp: Likewise.
* gdb.mi/mi2-amd64-entry-value.exp: Likewise.
* gdb.mi/new-ui-mi-sync.exp: Likewise.
* gdb.mi/user-selected-context-sync.exp: Likewise.
* gdb.opt/inline-cmds.exp: Likewise.
* gdb.python/py-framefilter-mi.exp: Likewise.
* gdb.python/py-mi.exp: Likewise.

Change-Id: I2e49ca7b0b61cea57c1202e5dfa32417e6a4403d

12 files changed:
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.mi/mi-catch-cpp-exceptions.exp
gdb/testsuite/gdb.mi/mi-var-cmd.exp
gdb/testsuite/gdb.mi/mi-var-invalidate.exp
gdb/testsuite/gdb.mi/mi-var-list-children-invalid-grandchild.exp
gdb/testsuite/gdb.mi/mi2-amd64-entry-value.exp
gdb/testsuite/gdb.mi/new-ui-mi-sync.exp
gdb/testsuite/gdb.mi/user-selected-context-sync.exp
gdb/testsuite/gdb.opt/inline-cmds.exp
gdb/testsuite/gdb.python/py-framefilter-mi.exp
gdb/testsuite/gdb.python/py-mi.exp
gdb/testsuite/lib/mi-support.exp

index 6248618451c21a10162779eb77305227c999fc27..19b4e2b138c39753b8ee0fbfc64575f030a0096b 100644 (file)
@@ -1,3 +1,18 @@
+2020-10-13  Pedro Alves  <pedro@palves.net>
+
+       * lib/mi-support.exp (mi_runto_main): New proc.
+       (mi_run_to_main): Use it.
+       * gdb.mi/mi-catch-cpp-exceptions.exp: Likewise.
+       * gdb.mi/mi-var-cmd.exp: Likewise.
+       * gdb.mi/mi-var-invalidate.exp: Likewise.
+       * mi-var-list-children-invalid-grandchild.exp: Likewise.
+       * gdb.mi/mi2-amd64-entry-value.exp: Likewise.
+       * gdb.mi/new-ui-mi-sync.exp: Likewise.
+       * gdb.mi/user-selected-context-sync.exp: Likewise.
+       * gdb.opt/inline-cmds.exp: Likewise.
+       * gdb.python/py-framefilter-mi.exp: Likewise.
+       * gdb.python/py-mi.exp: Likewise.
+
 2020-10-13  Pedro Alves  <pedro@palves.net>
 
        * gdb.ada/fun_in_declare.exp: Use "runto_main" instead of
index 40c17c68e63055f779397c7b09a67e4fb6bdfaf1..14e820fa35023099f6f063633461b35e89ac5f30 100644 (file)
@@ -59,7 +59,7 @@ proc restart_for_test {} {
     mi_gdb_reinitialize_dir $srcdir/$subdir
     mi_gdb_load ${binfile}
 
-    mi_runto main
+    mi_runto_main
 
     mi_create_breakpoint \
        "$srcfile:${main_lineno}" "break before exiting program" \
index 260917a906bf682e1a84abc592fc9ffaebd9bce4..c521a18bf6e3e8e070c13f1818cf96b57b4ae15f 100644 (file)
@@ -657,7 +657,7 @@ with_test_prefix "second run" {
 mi_create_varobj "L" "lsimple" "in-and-out-of-scope: create varobj"
 mi_check_varobj_value "L" "{...}" "in-and-out-of-scope: check initial value"
 
-mi_runto main
+mi_runto_main
 
 mi_gdb_test "-var-update L" \
     {\^done,changelist=\[{name="L",in_scope="false",type_changed="false",has_more="0"}\]} \
index d6fb77547667c971176f8826a649329378108c3e..bc056b92d8b64d0f26d0aee0620d0808d9f4ed7f 100644 (file)
@@ -70,7 +70,7 @@ mi_create_floating_varobj float_simple array "create floating variable"
 #
 mi_delete_breakpoints
 mi_gdb_load ${binfile_bis}
-mi_runto main
+mi_runto_main
 
 # Change format of floating variable immediately after reload reveals a
 # bug where gdb still uses a free'd pointer.
index 78ad1e1e4b292947a2429020a2f0a3be6004c6d5..b34593546d3700d78e6a06b0885078b99f02d956 100644 (file)
@@ -43,7 +43,7 @@ mi_gdb_test "-interpreter-exec console \"set print object on\"" \
     "(.*=cmd-param-changed,param=\"print object\",value=\"on\".*|)\\^done" \
     "set print object on"
 
-mi_runto main
+mi_runto_main
 
 mi_continue_to_line $line_invalid_pointer_value "continue to invalid pointer value"
 
index c9e5724bee3b2248394c4ac27c732a93c7d2ba8a..b8d2cd16bf4f7698294ad00391d644963c67be03 100644 (file)
@@ -49,7 +49,7 @@ foreach name {different breakhere_different breakhere_validity breakhere_invalid
 
 # Test various kinds of `set print entry-values'.
 
-if {[mi_runto main] == -1} {
+if {[mi_runto_main] == -1} {
     return -1
 }
 mi_gdb_test "-gdb-set print entry-values no" {\^done} "no: set print entry-values"
@@ -66,7 +66,7 @@ mi_send_resuming_command "exec-continue" "no: invalid: continue"
 mi_expect_stop "breakpoint-hit" .* {{name="inv",value="<optimized out>"}} .* .* {.* disp="keep"} "no: invalid: stop"
 mi_gdb_test "-stack-list-variables --all-values" {\^done,variables=\[{name="inv",arg="1",value="<optimized out>"}\]} "no: invalid: -stack-list-variables"
 
-if {[mi_runto main] == -1} {
+if {[mi_runto_main] == -1} {
     return -1
 }
 mi_gdb_test "-gdb-set print entry-values only" {\^done} "only: set print entry-values"
@@ -83,7 +83,7 @@ mi_send_resuming_command "exec-continue" "only: invalid: continue"
 mi_expect_stop "breakpoint-hit" .* {{name="inv@entry",value="<optimized out>"}} .* .* {.* disp="keep"} "only: invalid: stop"
 mi_gdb_test "-stack-list-variables --all-values" {\^done,variables=\[{name="inv@entry",arg="1",value="<optimized out>"}\]} "only: invalid: -stack-list-variables"
 
-if {[mi_runto main] == -1} {
+if {[mi_runto_main] == -1} {
     return -1
 }
 mi_gdb_test "-gdb-set print entry-values preferred" {\^done} "preferred: set print entry-values"
@@ -100,7 +100,7 @@ mi_send_resuming_command "exec-continue" "preferred: invalid: continue"
 mi_expect_stop "breakpoint-hit" .* {{name="inv@entry",value="<optimized out>"}} .* .* {.* disp="keep"} "preferred: invalid: stop"
 mi_gdb_test "-stack-list-variables --all-values" {\^done,variables=\[{name="inv@entry",arg="1",value="<optimized out>"}\]} "preferred: invalid: -stack-list-variables"
 
-if {[mi_runto main] == -1} {
+if {[mi_runto_main] == -1} {
     return -1
 }
 mi_gdb_test "-gdb-set print entry-values if-needed" {\^done} "if-needed: set print entry-values"
@@ -117,7 +117,7 @@ mi_send_resuming_command "exec-continue" "if-needed: invalid: continue"
 mi_expect_stop "breakpoint-hit" .* {{name="inv",value="<optimized out>"}} .* .* {.* disp="keep"} "if-needed: invalid: stop"
 mi_gdb_test "-stack-list-variables --all-values" {\^done,variables=\[{name="inv",arg="1",value="<optimized out>"}\]} "if-needed: invalid: -stack-list-variables"
 
-if {[mi_runto main] == -1} {
+if {[mi_runto_main] == -1} {
     return -1
 }
 mi_gdb_test "-gdb-set print entry-values both" {\^done} "both: set print entry-values"
@@ -134,7 +134,7 @@ mi_send_resuming_command "exec-continue" "both: invalid: continue"
 mi_expect_stop "breakpoint-hit" .* {{name="inv",value="<optimized out>"},{name="inv@entry",value="<optimized out>"}} .* .* {.* disp="keep"} "both: invalid: stop"
 mi_gdb_test "-stack-list-variables --all-values" {\^done,variables=\[{name="inv",arg="1",value="<optimized out>"},{name="inv@entry",arg="1",value="<optimized out>"}\]} "both: invalid: -stack-list-variables"
 
-if {[mi_runto main] == -1} {
+if {[mi_runto_main] == -1} {
     return -1
 }
 mi_gdb_test "-gdb-set print entry-values compact" {\^done} "compact: set print entry-values"
@@ -151,7 +151,7 @@ mi_send_resuming_command "exec-continue" "compact: invalid: continue"
 mi_expect_stop "breakpoint-hit" .* {{name="inv",value="<optimized out>"}} .* .* {.* disp="keep"} "compact: invalid: stop"
 mi_gdb_test "-stack-list-variables --all-values" {\^done,variables=\[{name="inv",arg="1",value="<optimized out>"}\]} "compact: invalid: -stack-list-variables"
 
-if {[mi_runto main] == -1} {
+if {[mi_runto_main] == -1} {
     return -1
 }
 mi_gdb_test "-gdb-set print entry-values default" {\^done} "default: set print entry-values"
index a55fae67dfe7d0e8899b6e860edbba7f5c0dc2f6..83a8d5ff4a488aea9bf4d2d203e0f3df1171e6c0 100644 (file)
@@ -63,7 +63,7 @@ proc do_test {sync_command} {
            return
        }
     } else {
-       if {[mi_runto main] < 0} {
+       if {[mi_runto_main] < 0} {
            return
        }
        if {[mi_send_resuming_command_raw "123-exec-continue" $test] >= 0} {
index 390df005542cc937fe287530bc5460161344a73e..ed39443eb73b554834e782c49982d442d6dd4f23 100644 (file)
@@ -401,7 +401,7 @@ proc_with_prefix test_setup { mode } {
     mi_gdb_reinitialize_dir $srcdir/$subdir
     mi_gdb_load $binfile
 
-    if { [mi_runto main] < 0 } {
+    if { [mi_runto_main] < 0 } {
        fail "can't run to main"
        return
     }
index 94314fe2e4cc1725f3db95c25ae48ee6de549ec2..516d76139cd542c9026b5f970dcf6f22a0d41acf 100644 (file)
@@ -355,7 +355,7 @@ with_test_prefix "mi" {
        continue
     }
     mi_gdb_load ${binfile}
-    mi_runto main
+    mi_runto_main
 
     set line_number [gdb_get_line_number "set mi break here"]
     mi_gdb_test "-break-insert ${srcfile}:${line_number}" \
index 244ec1a2b6b144eb247c04968fac33d30018487b..feb58111f4b6facdb5680863e755d9954cbd7754 100644 (file)
@@ -42,7 +42,7 @@ if {[lsearch -exact [mi_get_features] python] < 0} {
     return -1
 }
 
-mi_runto main
+mi_runto_main
 
 set remote_python_file [gdb_remote_download host ${srcdir}/${subdir}/${pyfile}]
 
index abaa380186ea2acaa3f53d20f837b9e5ce55ef4b..7216c4141d638a6d571242464f5d370e664fbcb0 100644 (file)
@@ -40,7 +40,7 @@ if {[lsearch -exact [mi_get_features] python] < 0} {
     return -1
 }
 
-mi_runto main
+mi_runto_main
 
 set remote_python_file [gdb_remote_download host ${srcdir}/${subdir}/${pyfile}]
 
@@ -347,7 +347,7 @@ if {[lsearch -exact [mi_get_features] python] < 0} {
     return -1
 }
 
-mi_runto main
+mi_runto_main
 mi_continue_to_line \
     [gdb_get_line_number {break to inspect struct and union} ${srcfile}] \
     "step to breakpoint"
index 0e7524ed0f65a28e882eb528f5a1313b932b94e8..732aed27b27947495ee78fc154e56f45c146aaad 100644 (file)
@@ -1042,7 +1042,7 @@ proc mi_run_to_main { } {
     mi_gdb_reinitialize_dir $srcdir/$subdir
     mi_gdb_load ${binfile}
 
-    mi_runto main
+    mi_runto_main
 }
 
 
@@ -1086,6 +1086,12 @@ proc mi_runto {func} {
     return [mi_runto_helper $func "run"]
 }
 
+# Just like runto_main but works with the MI interface.
+
+proc mi_runto_main {} {
+    return [mi_runto_helper "main" "run"]
+}
+
 # Next to the next statement
 # For return values, see mi_execute_to_helper