From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id kF/5Kring19pWAAAWB0awg (envelope-from ) for ; Sun, 11 Oct 2020 20:47:52 -0400 Received: by simark.ca (Postfix, from userid 112) id ABA361EF6F; Sun, 11 Oct 2020 20:47:52 -0400 (EDT) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=MAILING_LIST_MULTI autolearn=ham autolearn_force=no version=3.4.2 Received: from sourceware.org (server2.sourceware.org [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id 22B1E1E58E for ; Sun, 11 Oct 2020 20:47:46 -0400 (EDT) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id CC5EA3846078; Mon, 12 Oct 2020 00:47:45 +0000 (GMT) Received: from mail-wr1-f48.google.com (mail-wr1-f48.google.com [209.85.221.48]) by sourceware.org (Postfix) with ESMTPS id D3826385EC54 for ; Mon, 12 Oct 2020 00:47:41 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org D3826385EC54 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=palves.net Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=alves.ped@gmail.com Received: by mail-wr1-f48.google.com with SMTP id y12so11810776wrp.6 for ; Sun, 11 Oct 2020 17:47:41 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references; bh=jVl6WJN/QnRPf31W/26dpRL6qJ7vDFIC47qfyMZF0as=; b=Li1X2+vVz4aIN4bk/uPo5L1QNKxiTM+SwCX/C4UknOYa+HWkVVzCWe+kJGo3e/5moe wxF7SVGwauWhas1DxAo1NP6nS0tjs3jQXKWO89OE49oEa+9+NSr5gG5zChZHWj1KHe7G jH5fDD+WbW9sUHbQ04X6ri7+QGZ2MtYj80zyR5RkuPs19T6zWVEudmwgFqDdN16wJW2N NZZS8hVdao4Uj7ve6QW8sIUO/bHh2uKSoGHNPo6YAEDIFFgPC9EebtxLpHfgK15cqS5v L4k4iAUnT0eawiO7ic3Eec4JzkfyVeq7BX+5PCnYe1MTt/Qqad1Gmq57pw+1iFeL7PeG MAlg== X-Gm-Message-State: AOAM531/50QRgtbPFtdXmlcdV76Bt5UCsnSizIGgn5q5cIrMiauOoMzM hI7DYH4CdFUVXHoaKNmu2G8J7bDhE/TLQA== X-Google-Smtp-Source: ABdhPJxfYSuX3UqW3HZrzxmw38bFPF5+lUPTZs/LwQRDNri6I4Wlft+qKELVf9xkFL7rj6S85yrebw== X-Received: by 2002:adf:ec50:: with SMTP id w16mr26940024wrn.265.1602463660170; Sun, 11 Oct 2020 17:47:40 -0700 (PDT) Received: from localhost ([2001:8a0:f91e:6d00:c80a:ea25:47ef:5f73]) by smtp.gmail.com with ESMTPSA id j101sm24156121wrj.9.2020.10.11.17.47.38 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Sun, 11 Oct 2020 17:47:38 -0700 (PDT) From: Pedro Alves To: gdb-patches@sourceware.org Subject: [PATCH 2/5] Introduce mi_runto_main Date: Mon, 12 Oct 2020 01:47:29 +0100 Message-Id: <20201012004732.22999-3-pedro@palves.net> X-Mailer: git-send-email 2.14.5 In-Reply-To: <20201012004732.22999-1-pedro@palves.net> References: <20201012004732.22999-1-pedro@palves.net> X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces@sourceware.org Sender: "Gdb-patches" 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 --- gdb/testsuite/gdb.mi/mi-catch-cpp-exceptions.exp | 2 +- gdb/testsuite/gdb.mi/mi-var-cmd.exp | 2 +- gdb/testsuite/gdb.mi/mi-var-invalidate.exp | 2 +- .../gdb.mi/mi-var-list-children-invalid-grandchild.exp | 2 +- gdb/testsuite/gdb.mi/mi2-amd64-entry-value.exp | 14 +++++++------- gdb/testsuite/gdb.mi/new-ui-mi-sync.exp | 2 +- gdb/testsuite/gdb.mi/user-selected-context-sync.exp | 2 +- gdb/testsuite/gdb.opt/inline-cmds.exp | 2 +- gdb/testsuite/gdb.python/py-framefilter-mi.exp | 2 +- gdb/testsuite/gdb.python/py-mi.exp | 4 ++-- gdb/testsuite/lib/mi-support.exp | 8 +++++++- 11 files changed, 24 insertions(+), 18 deletions(-) diff --git a/gdb/testsuite/gdb.mi/mi-catch-cpp-exceptions.exp b/gdb/testsuite/gdb.mi/mi-catch-cpp-exceptions.exp index 40c17c68e63..14e820fa350 100644 --- a/gdb/testsuite/gdb.mi/mi-catch-cpp-exceptions.exp +++ b/gdb/testsuite/gdb.mi/mi-catch-cpp-exceptions.exp @@ -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" \ diff --git a/gdb/testsuite/gdb.mi/mi-var-cmd.exp b/gdb/testsuite/gdb.mi/mi-var-cmd.exp index 260917a906b..c521a18bf6e 100644 --- a/gdb/testsuite/gdb.mi/mi-var-cmd.exp +++ b/gdb/testsuite/gdb.mi/mi-var-cmd.exp @@ -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"}\]} \ diff --git a/gdb/testsuite/gdb.mi/mi-var-invalidate.exp b/gdb/testsuite/gdb.mi/mi-var-invalidate.exp index d6fb7754766..bc056b92d8b 100644 --- a/gdb/testsuite/gdb.mi/mi-var-invalidate.exp +++ b/gdb/testsuite/gdb.mi/mi-var-invalidate.exp @@ -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. diff --git a/gdb/testsuite/gdb.mi/mi-var-list-children-invalid-grandchild.exp b/gdb/testsuite/gdb.mi/mi-var-list-children-invalid-grandchild.exp index 78ad1e1e4b2..b34593546d3 100644 --- a/gdb/testsuite/gdb.mi/mi-var-list-children-invalid-grandchild.exp +++ b/gdb/testsuite/gdb.mi/mi-var-list-children-invalid-grandchild.exp @@ -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" diff --git a/gdb/testsuite/gdb.mi/mi2-amd64-entry-value.exp b/gdb/testsuite/gdb.mi/mi2-amd64-entry-value.exp index c9e5724bee3..b8d2cd16bf4 100644 --- a/gdb/testsuite/gdb.mi/mi2-amd64-entry-value.exp +++ b/gdb/testsuite/gdb.mi/mi2-amd64-entry-value.exp @@ -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=""}} .* .* {.* disp="keep"} "no: invalid: stop" mi_gdb_test "-stack-list-variables --all-values" {\^done,variables=\[{name="inv",arg="1",value=""}\]} "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=""}} .* .* {.* disp="keep"} "only: invalid: stop" mi_gdb_test "-stack-list-variables --all-values" {\^done,variables=\[{name="inv@entry",arg="1",value=""}\]} "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=""}} .* .* {.* disp="keep"} "preferred: invalid: stop" mi_gdb_test "-stack-list-variables --all-values" {\^done,variables=\[{name="inv@entry",arg="1",value=""}\]} "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=""}} .* .* {.* disp="keep"} "if-needed: invalid: stop" mi_gdb_test "-stack-list-variables --all-values" {\^done,variables=\[{name="inv",arg="1",value=""}\]} "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=""},{name="inv@entry",value=""}} .* .* {.* disp="keep"} "both: invalid: stop" mi_gdb_test "-stack-list-variables --all-values" {\^done,variables=\[{name="inv",arg="1",value=""},{name="inv@entry",arg="1",value=""}\]} "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=""}} .* .* {.* disp="keep"} "compact: invalid: stop" mi_gdb_test "-stack-list-variables --all-values" {\^done,variables=\[{name="inv",arg="1",value=""}\]} "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" diff --git a/gdb/testsuite/gdb.mi/new-ui-mi-sync.exp b/gdb/testsuite/gdb.mi/new-ui-mi-sync.exp index a55fae67dfe..83a8d5ff4a4 100644 --- a/gdb/testsuite/gdb.mi/new-ui-mi-sync.exp +++ b/gdb/testsuite/gdb.mi/new-ui-mi-sync.exp @@ -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} { diff --git a/gdb/testsuite/gdb.mi/user-selected-context-sync.exp b/gdb/testsuite/gdb.mi/user-selected-context-sync.exp index 390df005542..ed39443eb73 100644 --- a/gdb/testsuite/gdb.mi/user-selected-context-sync.exp +++ b/gdb/testsuite/gdb.mi/user-selected-context-sync.exp @@ -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 } diff --git a/gdb/testsuite/gdb.opt/inline-cmds.exp b/gdb/testsuite/gdb.opt/inline-cmds.exp index 94314fe2e4c..516d76139cd 100644 --- a/gdb/testsuite/gdb.opt/inline-cmds.exp +++ b/gdb/testsuite/gdb.opt/inline-cmds.exp @@ -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}" \ diff --git a/gdb/testsuite/gdb.python/py-framefilter-mi.exp b/gdb/testsuite/gdb.python/py-framefilter-mi.exp index 244ec1a2b6b..feb58111f4b 100644 --- a/gdb/testsuite/gdb.python/py-framefilter-mi.exp +++ b/gdb/testsuite/gdb.python/py-framefilter-mi.exp @@ -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}] diff --git a/gdb/testsuite/gdb.python/py-mi.exp b/gdb/testsuite/gdb.python/py-mi.exp index abaa380186e..7216c4141d6 100644 --- a/gdb/testsuite/gdb.python/py-mi.exp +++ b/gdb/testsuite/gdb.python/py-mi.exp @@ -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" diff --git a/gdb/testsuite/lib/mi-support.exp b/gdb/testsuite/lib/mi-support.exp index 0e7524ed0f6..732aed27b27 100644 --- a/gdb/testsuite/lib/mi-support.exp +++ b/gdb/testsuite/lib/mi-support.exp @@ -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 -- 2.14.5