From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from omta034.useast.a.cloudfilter.net (omta034.useast.a.cloudfilter.net [44.202.169.33]) by sourceware.org (Postfix) with ESMTPS id 6B9D13856962 for ; Sun, 5 Nov 2023 18:11:35 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 6B9D13856962 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=tromey.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=tromey.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 6B9D13856962 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=44.202.169.33 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1699207900; cv=none; b=TO4OBfKNOGp2wsGAJW04sJU+Hu4lFCge62CUboSIG9XzhUFBS3cElhdiFiyEJKUCzTZIV0hcFkZvQPDBzVrVaKW+NC9dEEWQfuCt8rZXRu6HA1x6KFh0JOE0afg9XItcm46Ou3eOp0WFZBYBPXkLdz/c8S04X+7g130JKU6pVMA= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1699207900; c=relaxed/simple; bh=eJiMuJqm0EQQqyh8cav+BdELkyZdYEj2nX+t5+WHD/4=; h=DKIM-Signature:From:Date:Subject:MIME-Version:Message-Id:To; b=vSnBbJwq8IQ73O+wuRtjj6z7fPMcMxsasbxWBPYFGzXHlNBGM/NbOZJSMfzNnZQUeP/LIg7AlREalqOABpoju+ISE9pMto9plcCpAyajbSZGl9YyP2bwIb4mVzWutt83kNGRBUJImaq2Ps5myoSyVLFpHdAqlcL03wT+RfzWfC0= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from eig-obgw-5008a.ext.cloudfilter.net ([10.0.29.246]) by cmsmtp with ESMTPS id zgXcq9vBvjtZ3zhazqO084; Sun, 05 Nov 2023 18:11:37 +0000 Received: from box5379.bluehost.com ([162.241.216.53]) by cmsmtp with ESMTPS id zhawqjdPhpPpmzhaxq74kC; Sun, 05 Nov 2023 18:11:35 +0000 X-Authority-Analysis: v=2.4 cv=MJVzJeVl c=1 sm=1 tr=0 ts=6547dad7 a=ApxJNpeYhEAb1aAlGBBbmA==:117 a=ApxJNpeYhEAb1aAlGBBbmA==:17 a=OWjo9vPv0XrRhIrVQ50Ab3nP57M=:19 a=dLZJa+xiwSxG16/P+YVxDGlgEgI=:19 a=IkcTkHD0fZMA:10 a=BNY50KLci1gA:10 a=Qbun_eYptAEA:10 a=DxUNwVNMKNhtkHIqcQsA:9 a=QEXdDO2ut3YA:10 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tromey.com; s=default; h=To:In-Reply-To:References:Message-Id:Content-Transfer-Encoding: Content-Type:MIME-Version:Subject:Date:From:Sender:Reply-To:Cc:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=KD7ECV0S4CAS/fQ7fPVwnkAR3xw+AHg2ntWERF0CNB4=; b=NKeuOSSZKJpYIy3WdBbirxv+MT VUqx1sfApG6orwCz5FTFfVG26av3ZV15tqb6Jr2LV7lOxgUZ0h0vpnZ5xKhRitN6pyCc9i8IrBoJk r1qpSHC7RDmNqQ6qCRwcYO9tP; Received: from 97-122-77-73.hlrn.qwest.net ([97.122.77.73]:51014 helo=[192.168.0.21]) by box5379.bluehost.com with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96.2) (envelope-from ) id 1qzhaw-003Y66-12 for gdb-patches@sourceware.org; Sun, 05 Nov 2023 11:11:34 -0700 From: Tom Tromey Date: Sun, 05 Nov 2023 11:12:03 -0700 Subject: [PATCH v2 25/31] Use read_var_value in read_frame_arg and read_frame_local MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20231105-split-objfile-2023-bound-sym-october-v2-25-dbd2d158bbc3@tromey.com> References: <20231105-split-objfile-2023-bound-sym-october-v2-0-dbd2d158bbc3@tromey.com> In-Reply-To: <20231105-split-objfile-2023-bound-sym-october-v2-0-dbd2d158bbc3@tromey.com> To: gdb-patches@sourceware.org X-Mailer: b4 0.12.4 X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - box5379.bluehost.com X-AntiAbuse: Original Domain - sourceware.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - tromey.com X-BWhitelist: no X-Source-IP: 97.122.77.73 X-Source-L: No X-Exim-ID: 1qzhaw-003Y66-12 X-Source: X-Source-Args: X-Source-Dir: X-Source-Sender: 97-122-77-73.hlrn.qwest.net ([192.168.0.21]) [97.122.77.73]:51014 X-Source-Auth: tom+tromey.com X-Email-Count: 26 X-Org: HG=bhshared;ORG=bluehost; X-Source-Cap: ZWx5bnJvYmk7ZWx5bnJvYmk7Ym94NTM3OS5ibHVlaG9zdC5jb20= X-Local-Domain: yes X-CMAE-Envelope: MS4xfOReo/8SDPvJBQAevr0BrMNOJSd3wCB0wgCuQ6obh1B5NqJsoV7W5xuodfUwwszYQzOZ8Ch23MLNJ3XGNlHI2LGL0iZA4EuzlpUzvG2WKdeTEkpxWPMU 3Gr2pVBe/XNJ97p4OJKLXw2aaY0UMsrvYL42BD/bEjBm7v0rvjcJM/4/Izz/ggdf0CLLeQtBeecqwbfF26Ck31BuRncwXLlpnpw= X-Spam-Status: No, score=-3023.7 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,GIT_PATCH_0,JMQ_SPF_NEUTRAL,KAM_STOCKGEN,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: This changes read_frame_arg and read_frame_local to take a block_symbol and to use the new read_var_value overload.k --- gdb/frame.h | 6 +++--- gdb/mi/mi-cmd-stack.c | 20 ++++++++++---------- gdb/python/py-framefilter.c | 8 ++++---- gdb/stack.c | 27 ++++++++++++++------------- 4 files changed, 31 insertions(+), 30 deletions(-) diff --git a/gdb/frame.h b/gdb/frame.h index 0f1640c4a68..7c664c7cea8 100644 --- a/gdb/frame.h +++ b/gdb/frame.h @@ -931,7 +931,7 @@ extern frame_print_options user_frame_print_options; struct frame_arg { /* Symbol for this parameter used for example for its name. */ - struct symbol *sym = nullptr; + block_symbol sym = {}; /* Value of the parameter. It is NULL if ERROR is not NULL; if both VAL and ERROR are NULL this parameter's value should not be printed. */ @@ -954,10 +954,10 @@ struct frame_arg }; extern void read_frame_arg (const frame_print_options &fp_opts, - symbol *sym, frame_info_ptr frame, + block_symbol sym, frame_info_ptr frame, struct frame_arg *argp, struct frame_arg *entryargp); -extern void read_frame_local (struct symbol *sym, frame_info_ptr frame, +extern void read_frame_local (block_symbol sym, frame_info_ptr frame, struct frame_arg *argp); extern void info_args_command (const char *, int); diff --git a/gdb/mi/mi-cmd-stack.c b/gdb/mi/mi-cmd-stack.c index e473be7d465..9a53bac92e7 100644 --- a/gdb/mi/mi-cmd-stack.c +++ b/gdb/mi/mi-cmd-stack.c @@ -521,18 +521,18 @@ list_arg_or_local (const struct frame_arg *arg, enum what_to_list what, string_file stb; - stb.puts (arg->sym->print_name ()); + stb.puts (arg->sym.symbol->print_name ()); if (arg->entry_kind == print_entry_values_only) stb.puts ("@entry"); uiout->field_stream ("name", stb); - if (what == all && arg->sym->is_argument ()) + if (what == all && arg->sym.symbol->is_argument ()) uiout->field_signed ("arg", 1); if (values == PRINT_SIMPLE_VALUES) { - check_typedef (arg->sym->type ()); - type_print (arg->sym->type (), "", &stb, -1); + check_typedef (arg->sym.symbol->type ()); + type_print (arg->sym.symbol->type (), "", &stb, -1); uiout->field_stream ("type", stb); } @@ -549,7 +549,7 @@ list_arg_or_local (const struct frame_arg *arg, enum what_to_list what, get_no_prettyformat_print_options (&opts); opts.deref_ref = true; common_val_print (arg->val, &stb, 0, &opts, - language_def (arg->sym->language ())); + language_def (arg->sym.symbol->language ())); } catch (const gdb_exception_error &except) { @@ -632,15 +632,15 @@ list_args_or_locals (const frame_print_options &fp_opts, } if (print_me) { - struct symbol *sym2; + block_symbol sym2; struct frame_arg arg, entryarg; if (sym->is_argument ()) sym2 = lookup_symbol_search_name (sym->search_name (), - block, VAR_DOMAIN).symbol; + block, VAR_DOMAIN); else - sym2 = sym; - gdb_assert (sym2 != NULL); + sym2 = { sym, block }; + gdb_assert (sym2.symbol != nullptr); arg.sym = sym2; arg.entry_kind = print_entry_values_no; @@ -650,7 +650,7 @@ list_args_or_locals (const frame_print_options &fp_opts, switch (values) { case PRINT_SIMPLE_VALUES: - if (!mi_simple_type_p (sym2->type ())) + if (!mi_simple_type_p (sym2.symbol->type ())) break; /* FALLTHROUGH */ diff --git a/gdb/python/py-framefilter.c b/gdb/python/py-framefilter.c index 07b30a587b1..b214e82628f 100644 --- a/gdb/python/py-framefilter.c +++ b/gdb/python/py-framefilter.c @@ -312,7 +312,7 @@ py_print_single_arg (struct ui_out *out, { if (fa->val == NULL && fa->error == NULL) return; - language = language_def (fa->sym->language ()); + language = language_def (fa->sym.symbol->language ()); val = fa->val; } else @@ -340,12 +340,12 @@ py_print_single_arg (struct ui_out *out, { string_file stb; - gdb_puts (fa->sym->print_name (), &stb); + gdb_puts (fa->sym.symbol->print_name (), &stb); if (fa->entry_kind == print_entry_values_compact) { stb.puts ("="); - gdb_puts (fa->sym->print_name (), &stb); + gdb_puts (fa->sym.symbol->print_name (), &stb); } if (fa->entry_kind == print_entry_values_only || fa->entry_kind == print_entry_values_compact) @@ -472,7 +472,7 @@ enumerate_args (PyObject *iter, } read_frame_arg (user_frame_print_options, - sym, frame, &arg, &entryarg); + bsym, frame, &arg, &entryarg); /* The object has not provided a value, so this is a frame argument to be read by GDB. In this case we have to diff --git a/gdb/stack.c b/gdb/stack.c index f744baad61a..8d72949006c 100644 --- a/gdb/stack.c +++ b/gdb/stack.c @@ -428,14 +428,14 @@ print_frame_arg (const frame_print_options &fp_opts, annotate_arg_emitter arg_emitter; ui_out_emit_tuple tuple_emitter (uiout, NULL); - gdb_puts (arg->sym->print_name (), &stb); + gdb_puts (arg->sym.symbol->print_name (), &stb); if (arg->entry_kind == print_entry_values_compact) { /* It is OK to provide invalid MI-like stream as with PRINT_ENTRY_VALUE_COMPACT we never use MI. */ stb.puts ("="); - gdb_puts (arg->sym->print_name (), &stb); + gdb_puts (arg->sym.symbol->print_name (), &stb); } if (arg->entry_kind == print_entry_values_only || arg->entry_kind == print_entry_values_compact) @@ -472,7 +472,7 @@ print_frame_arg (const frame_print_options &fp_opts, /* Use the appropriate language to display our symbol, unless the user forced the language to a specific language. */ if (language_mode == language_mode_auto) - language = language_def (arg->sym->language ()); + language = language_def (arg->sym.symbol->language ()); else language = current_language; @@ -503,7 +503,7 @@ print_frame_arg (const frame_print_options &fp_opts, exception. */ void -read_frame_local (struct symbol *sym, frame_info_ptr frame, +read_frame_local (block_symbol sym, frame_info_ptr frame, struct frame_arg *argp) { argp->sym = sym; @@ -512,7 +512,7 @@ read_frame_local (struct symbol *sym, frame_info_ptr frame, try { - argp->val = read_var_value (sym, NULL, frame); + argp->val = read_var_value (sym, frame); } catch (const gdb_exception_error &except) { @@ -525,7 +525,7 @@ read_frame_local (struct symbol *sym, frame_info_ptr frame, void read_frame_arg (const frame_print_options &fp_opts, - symbol *sym, frame_info_ptr frame, + block_symbol bsym, frame_info_ptr frame, struct frame_arg *argp, struct frame_arg *entryargp) { struct value *val = NULL, *entryval = NULL; @@ -537,7 +537,7 @@ read_frame_arg (const frame_print_options &fp_opts, { try { - val = read_var_value (sym, NULL, frame); + val = read_var_value (bsym, frame); } catch (const gdb_exception_error &except) { @@ -546,6 +546,7 @@ read_frame_arg (const frame_print_options &fp_opts, } } + symbol *sym = bsym.symbol; if (SYMBOL_COMPUTED_OPS (sym) != NULL && SYMBOL_COMPUTED_OPS (sym)->read_variable_at_entry != NULL && fp_opts.print_entry_values != print_entry_values_no @@ -661,7 +662,7 @@ read_frame_arg (const frame_print_options &fp_opts, try { - val = read_var_value (sym, NULL, frame); + val = read_var_value (bsym, frame); } catch (const gdb_exception_error &except) { @@ -687,7 +688,7 @@ read_frame_arg (const frame_print_options &fp_opts, val_error = NULL; } - argp->sym = sym; + argp->sym = bsym; argp->val = val; argp->error.reset (val_error ? xstrdup (val_error) : NULL); if (!val && !val_error) @@ -702,7 +703,7 @@ read_frame_arg (const frame_print_options &fp_opts, else argp->entry_kind = print_entry_values_no; - entryargp->sym = sym; + entryargp->sym = bsym; entryargp->val = entryval; entryargp->error.reset (entryval_error ? xstrdup (entryval_error) : NULL); if (!entryval && !entryval_error) @@ -871,13 +872,13 @@ print_frame_args (const frame_print_options &fp_opts, if (!print_args) { - arg.sym = sym; + arg.sym = { sym, b }; arg.entry_kind = print_entry_values_no; - entryarg.sym = sym; + entryarg.sym = { sym, b }; entryarg.entry_kind = print_entry_values_no; } else - read_frame_arg (fp_opts, sym, frame, &arg, &entryarg); + read_frame_arg (fp_opts, { sym, b }, frame, &arg, &entryarg); if (arg.entry_kind != print_entry_values_only) print_frame_arg (fp_opts, &arg); -- 2.41.0