From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id jAvIGMibkF98IQAAWB0awg (envelope-from ) for ; Wed, 21 Oct 2020 16:36:24 -0400 Received: by simark.ca (Postfix, from userid 112) id 584DC1EFC3; Wed, 21 Oct 2020 16:36:24 -0400 (EDT) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on simark.ca X-Spam-Level: X-Spam-Status: No, score=0.4 required=5.0 tests=DKIM_SIGNED,MAILING_LIST_MULTI, RCVD_IN_BL_SPAMCOP_NET,T_DKIM_INVALID,URIBL_BLOCKED autolearn=no 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 E191B1EFB9 for ; Wed, 21 Oct 2020 16:36:23 -0400 (EDT) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id ED3DE3857C43; Wed, 21 Oct 2020 20:36:22 +0000 (GMT) Received: from gateway20.websitewelcome.com (gateway20.websitewelcome.com [192.185.48.38]) by sourceware.org (Postfix) with ESMTPS id 5B5723857C43 for ; Wed, 21 Oct 2020 20:36:19 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 5B5723857C43 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=tromey.com Authentication-Results: sourceware.org; spf=fail smtp.mailfrom=tom@tromey.com Received: from cm12.websitewelcome.com (cm12.websitewelcome.com [100.42.49.8]) by gateway20.websitewelcome.com (Postfix) with ESMTP id 49AA7400D02B8 for ; Wed, 21 Oct 2020 15:34:07 -0500 (CDT) Received: from box5379.bluehost.com ([162.241.216.53]) by cmsmtp with SMTP id VKptkhrHTn9FWVKptkS3BZ; Wed, 21 Oct 2020 15:35:53 -0500 X-Authority-Reason: nr=8 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tromey.com; s=default; h=Content-Type:MIME-Version:Message-ID:In-Reply-To:Date: References:Subject:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding: 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=OQk0SO0o8TJ+xSeXSkQjA8YufaJXAUYtExqnzklMe8U=; b=uO4ayJlvdagSk8SvSexSPTlWG2 EkZ13Azzs6CIg1pLLOlNvHObWFZehJWwa6Dy8JA0rCRpYJU53YP7nCrg//gLjpL6H6l/0kTebpTIz ST9qbeqUjhc5+psu2qJlSciq0; Received: from 75-166-102-113.hlrn.qwest.net ([75.166.102.113]:57376 helo=murgatroyd) by box5379.bluehost.com with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.93) (envelope-from ) id 1kVKpt-000XyJ-BE; Wed, 21 Oct 2020 14:35:53 -0600 From: Tom Tromey To: Zoran Zaric Subject: Re: [PATCH v2] Replace the symbol needs evaluator with a parser References: <20201007172613.21868-1-Zoran.Zaric@amd.com> X-Attribution: Tom Date: Wed, 21 Oct 2020 14:35:51 -0600 In-Reply-To: <20201007172613.21868-1-Zoran.Zaric@amd.com> (Zoran Zaric's message of "Wed, 7 Oct 2020 18:26:13 +0100") Message-ID: <87imb3gvvc.fsf@tromey.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain 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: 75.166.102.113 X-Source-L: No X-Exim-ID: 1kVKpt-000XyJ-BE X-Source: X-Source-Args: X-Source-Dir: X-Source-Sender: 75-166-102-113.hlrn.qwest.net (murgatroyd) [75.166.102.113]:57376 X-Source-Auth: tom+tromey.com X-Email-Count: 2 X-Source-Cap: ZWx5bnJvYmk7ZWx5bnJvYmk7Ym94NTM3OS5ibHVlaG9zdC5jb20= X-Local-Domain: yes 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: , Cc: gdb-patches@sourceware.org Errors-To: gdb-patches-bounces@sourceware.org Sender: "Gdb-patches" >>>>> "Zoran" == Zoran Zaric writes: Zoran> This patch addresses a design problem with the symbol_needs_eval_context Zoran> class. It exposes the problem by introducing two new testsuite test Zoran> cases. Thank you for the patch. Zoran> This is clearly a wrong result and it causes the debugger to crash. One question I have here is whether we even need this symbol-needs-frame stuff. What if, instead, we just had gdb throw an exception in the situation where a frame is needed but not available? Then we could get rid of the asserts and gdb would simply print an error rather than crash. Can you look to see if that is feasible? The main advantage I see here is that this approach would avoid the problem we sometimes have of updating one DWARF expression-decoder and then forgetting to update the others... Zoran> A more desired long term design would be to have one class that deals Zoran> with parsing of the DWARF expression, while there would be a virtual Zoran> methods that deal with specifics of some DWARF operations. Then that Zoran> class would be used as a base for all DWARF expression parsing mentioned Zoran> at the beginning. What I did in gimli is have a parser that converts the DWARF expression to an internal form. Then users of the API can decide how to manipulate this form -- dump it, evaluate it, etc. This separates the low-level parsing bits from the decisions about what operations to perform. Zoran> gdb/ChangeLog: Zoran> * dwarf2/loc.c (class symbol_needs_eval_context): Remove. This is PR gdb/10592 and so that should be mentioned in both ChangeLogs. thanks, Tom