From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from omta038.useast.a.cloudfilter.net (omta038.useast.a.cloudfilter.net [44.202.169.37]) by sourceware.org (Postfix) with ESMTPS id D78383857006 for ; Sun, 5 Nov 2023 18:11:33 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org D78383857006 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 D78383857006 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=44.202.169.37 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1699207896; cv=none; b=HcxxBVENF22eQoDWZn40a3QK1nXRy0V4iMNtCE9vVoPqvEZ7lEqvbTVcHuk2rP14QMJyGW68frIAvwrs+oFbO5wznvNYtLlL+ryW6O6d3IXloJZhdWC2t8URyNkUyiLw0PlmFsRVZKqKXnSp6WekvQrZu1mb7IP8KwkOvkzQ3jM= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1699207896; c=relaxed/simple; bh=A7WsxTCBGkWKhymRUz7Alklv2Ufg9ul/oXNiu/KFPPY=; h=DKIM-Signature:From:Date:Subject:MIME-Version:Message-Id:To; b=CEO17x/fSz4DRZSkjdRefizzfH5f5l48DkAmAbnCONMUPt9a1dhCDV4Mg2TVLq+hYXQwczexp1aKXfWrxm/4hLXWqnLM3Sh0BourZJ/UQqEgkyVvi6Cj1Q5x8ZWa0NmcUwmbtIpeZmyjSKJeSTEB9m1BMxHfEi+H2VL9z2q2yH4= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from eig-obgw-5002a.ext.cloudfilter.net ([10.0.29.215]) by cmsmtp with ESMTPS id zYArqaZYHWcCIzhavqQWwG; Sun, 05 Nov 2023 18:11:33 +0000 Received: from box5379.bluehost.com ([162.241.216.53]) by cmsmtp with ESMTPS id zhauqkL2gF1O4zhavqlfma; Sun, 05 Nov 2023 18:11:33 +0000 X-Authority-Analysis: v=2.4 cv=CcwbWZnl c=1 sm=1 tr=0 ts=6547dad5 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=bQpgz2UOOIGWnD5mVVUA: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=QTefXyIwkro3tpBbwT38BYDKYQ55enUWsag+385+psM=; b=m45OLx6XZNNlJyjot2yvwBBEYJ 9rx5lldhHK1wCoNBfvldWOQ9vX4pADOB1w3D89CCkTzSLFofFmc9vZV+TP9uck5fxEWgfUiGXdb7E Ycj56H+IorcW7Nmco+EyUEYu2; 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 1qzhau-003Y66-19 for gdb-patches@sourceware.org; Sun, 05 Nov 2023 11:11:32 -0700 From: Tom Tromey Date: Sun, 05 Nov 2023 11:11:54 -0700 Subject: [PATCH v2 16/31] Use read_var_value overload in finish_command_fsm 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-16-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: 1qzhau-003Y66-19 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: 17 X-Org: HG=bhshared;ORG=bluehost; X-Source-Cap: ZWx5bnJvYmk7ZWx5bnJvYmk7Ym94NTM3OS5ibHVlaG9zdC5jb20= X-Local-Domain: yes X-CMAE-Envelope: MS4xfBfdANfYQu1MW2ka8OpMZDwlb65kHwXeXlLU2Y+uxrmssMDFacHIpfx17DnnLEpQsyK5b3EFsULpdjuqcKi0W42ASPPOlACjFTLQAJ7u1RNQrW2br+ve KHDVBdkGWmj5JqW1LbQuCutTHESeMujgyHmB8KgMg/ed4IAhUaUlkp1oMVjGPCL8uaF87pWpkRtjSZUg61jh7zG3j2Fg7m+pmfs= X-Spam-Status: No, score=-3024.4 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,GIT_PATCH_0,JMQ_SPF_NEUTRAL,RCVD_IN_DNSWL_NONE,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 finish_command_fsm to store a block_symbol, so that the new read_var_value overload can be used. --- gdb/infcmd.c | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/gdb/infcmd.c b/gdb/infcmd.c index c50d9bcd47d..03e54438686 100644 --- a/gdb/infcmd.c +++ b/gdb/infcmd.c @@ -1596,7 +1596,7 @@ struct finish_command_fsm : public thread_fsm breakpoint_up breakpoint; /* The function that we're stepping out of. */ - struct symbol *function = nullptr; + block_symbol function {}; /* If the FSM finishes successfully, this stores the function's return value. */ @@ -1629,14 +1629,14 @@ finish_command_fsm::should_stop (struct thread_info *tp) { struct return_value_info *rv = &return_value_info; - if (function != nullptr + if (function.symbol != nullptr && bpstat_find_breakpoint (tp->control.stop_bpstat, breakpoint.get ()) != nullptr) { /* We're done. */ set_finished (); - rv->type = function->type ()->target_type (); + rv->type = function.symbol->type ()->target_type (); if (rv->type == nullptr) internal_error (_("finish_command: function has no target type")); @@ -1644,13 +1644,13 @@ finish_command_fsm::should_stop (struct thread_info *tp) { struct value *func; - func = read_var_value (function, nullptr, get_current_frame ()); + func = read_var_value (function, get_current_frame ()); if (return_buf != 0) /* Retrieve return value from the buffer where it was saved. */ rv->value = value_at (rv->type, return_buf); else - rv->value = get_return_value (function, func); + rv->value = get_return_value (function.symbol, func); if (rv->value != nullptr) rv->value_history_index = rv->value->record_latest (); @@ -1883,22 +1883,22 @@ finish_command (const char *arg, int from_tty) /* Find the function we will return from. */ frame_info_ptr callee_frame = get_selected_frame (nullptr); - sm->function = find_pc_function (get_frame_pc (callee_frame)).symbol; + sm->function = find_pc_function (get_frame_pc (callee_frame)); sm->return_buf = 0; /* Initialize buffer address is not available. */ /* Determine the return convention. If it is RETURN_VALUE_STRUCT_CONVENTION, attempt to determine the address of the return buffer. */ - if (sm->function != nullptr) + if (sm->function.symbol != nullptr) { enum return_value_convention return_value; struct gdbarch *gdbarch = get_frame_arch (callee_frame); struct type * val_type - = check_typedef (sm->function->type ()->target_type ()); + = check_typedef (sm->function.symbol->type ()->target_type ()); return_value = gdbarch_return_value_as_value (gdbarch, - read_var_value (sm->function, nullptr, + read_var_value (sm->function, callee_frame), val_type, nullptr, nullptr, nullptr); @@ -1916,10 +1916,11 @@ finish_command (const char *arg, int from_tty) gdb_printf (_("Run back to call of ")); else { - if (sm->function != nullptr && TYPE_NO_RETURN (sm->function->type ()) + if (sm->function.symbol != nullptr + && TYPE_NO_RETURN (sm->function.symbol->type ()) && !query (_("warning: Function %s does not return normally.\n" "Try to finish anyway? "), - sm->function->print_name ())) + sm->function.symbol->print_name ())) error (_("Not confirmed.")); gdb_printf (_("Run till exit from ")); } -- 2.41.0