From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from gateway32.websitewelcome.com (gateway32.websitewelcome.com [192.185.145.123]) by sourceware.org (Postfix) with ESMTPS id 943BB381DCEF for ; Fri, 13 Mar 2020 13:59:28 +0000 (GMT) Received: from cm14.websitewelcome.com (cm14.websitewelcome.com [100.42.49.7]) by gateway32.websitewelcome.com (Postfix) with ESMTP id 29A9B90C509 for ; Fri, 13 Mar 2020 08:59:28 -0500 (CDT) Received: from box5379.bluehost.com ([162.241.216.53]) by cmsmtp with SMTP id CkqWjhdXYXVkQCkqWjztm3; Fri, 13 Mar 2020 08:59:28 -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=7SyfP8eo7YMPxGyJGSbkHKUF40pC8p8ujbstGuRp2mo=; b=G0sSPygOWeAQ++IXK+a0AYoBac cuPtbm0vuA2RPW13CJAYORUfBpUeZuxYraB/qC7JtPcYduNxLp0Vpn9WHmpcD3U9ZvCSIs+kGZCI9 CLIynTXxV3VfZi6uq0DmYYrre; Received: from 184-96-250-69.hlrn.qwest.net ([184.96.250.69]:35582 helo=murgatroyd) by box5379.bluehost.com with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.92) (envelope-from ) id 1jCkqV-003QSD-Qw; Fri, 13 Mar 2020 07:59:27 -0600 From: Tom Tromey To: Tom de Vries Cc: Tom Tromey , gdb-patches@sourceware.org Subject: Re: [RFC][gdb] Use partial symbol table to find language for main References: <20200301231752.GA6202@delia> <87tv35cucl.fsf@tromey.com> X-Attribution: Tom Date: Fri, 13 Mar 2020 07:59:26 -0600 In-Reply-To: (Tom de Vries's message of "Wed, 4 Mar 2020 17:07:18 +0100") Message-ID: <87mu8kfj9d.fsf@tromey.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.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: 184.96.250.69 X-Source-L: No X-Exim-ID: 1jCkqV-003QSD-Qw X-Source: X-Source-Args: X-Source-Dir: X-Source-Sender: 184-96-250-69.hlrn.qwest.net (murgatroyd) [184.96.250.69]:35582 X-Source-Auth: tom+tromey.com X-Email-Count: 11 X-Source-Cap: ZWx5bnJvYmk7ZWx5bnJvYmk7Ym94NTM3OS5ibHVlaG9zdC5jb20= X-Local-Domain: yes X-Spam-Status: No, score=-26.1 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE, SPF_HELO_PASS, SPF_NEUTRAL autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org 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: , X-List-Received-Date: Fri, 13 Mar 2020 13:59:29 -0000 >>>>> "Tom" == Tom de Vries writes: Tom> [gdb] Use partial symbol table to find language for main Tom> When language is set to auto, part of loading an executable is to update the Tom> language accordingly. This is implemented by set_initial_language. ... Tom> +/* Psymtab version of lookup_symbol_language. See its definition in Tom> + the definition of quick_symbol_functions in symfile.h. */ Tom> + Tom> +enum language Tom> +psym_lookup_symbol_language (struct objfile *objfile, Tom> + block_enum block_index, Tom> + const char *name, Tom> + domain_enum domain, Tom> + bool *symbol_found_p) This should be static. Tom> diff --git a/gdb/psymtab.h b/gdb/psymtab.h Tom> index 040b973927..a8a5d344b0 100644 Tom> --- a/gdb/psymtab.h Tom> +++ b/gdb/psymtab.h Tom> @@ -151,4 +151,9 @@ extern const struct quick_symbol_functions dwarf2_debug_names_functions; Tom> extern psymtab_storage::partial_symtab_range require_partial_symbols Tom> (struct objfile *objfile, bool verbose); Tom> +enum language psym_lookup_symbol_language (struct objfile *objfile, Tom> + block_enum block_index, Tom> + const char *name, Tom> + domain_enum domain, Tom> + bool *symbol_found_p); ... and not declared here. Tom> + /* Check to see if the symbol is defined in a "partial" symbol table Tom> + of OBJFILE. BLOCK_INDEX should be either GLOBAL_BLOCK or STATIC_BLOCK, Tom> + depending on whether we want to search global symbols or static Tom> + symbols. NAME is the name of the symbol to look for. DOMAIN Tom> + indicates what sort of symbol to search for. Tom> + Tom> + If found, sets *symbol_found_p to true and returns the symbol language. Tom> + defined, or NULL if no such symbol table exists. */ Tom> + enum language (*lookup_symbol_language) (struct objfile *objfile, Tom> + block_enum block_index, Does this really need the block index? It seems to me that main will normally be global. Also, the code seems to only ever use the global scope. Tom> +/* Find the language for partial symbol with NAME. */ Tom> + Tom> +enum language Tom> +find_quick_symbol_language (block_enum block_index, const char *name, Tom> + const domain_enum domain) This can be static. Tom> diff --git a/gdb/symtab.h b/gdb/symtab.h Tom> index 5fa067b5f4..da8d3011ea 100644 Tom> --- a/gdb/symtab.h Tom> +++ b/gdb/symtab.h Tom> @@ -2349,4 +2349,8 @@ private: Tom> std::vector m_minimal_symbols; Tom> }; Tom> +enum language Tom> +find_quick_symbol_language (block_enum block_index, const char *name, Tom> + const domain_enum domain); No need to declare here. Tom