From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 16258 invoked by alias); 17 Jun 2016 12:25:59 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 16247 invoked by uid 89); 17 Jun 2016 12:25:58 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-3.3 required=5.0 tests=BAYES_00,RP_MATCHES_RCVD,SPF_HELO_PASS autolearn=ham version=3.3.2 spammy=tromey X-HELO: mx1.redhat.com Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-GCM-SHA384 encrypted) ESMTPS; Fri, 17 Jun 2016 12:25:57 +0000 Received: from int-mx14.intmail.prod.int.phx2.redhat.com (int-mx14.intmail.prod.int.phx2.redhat.com [10.5.11.27]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 0475F80F67; Fri, 17 Jun 2016 12:25:56 +0000 (UTC) Received: from [127.0.0.1] (ovpn01.gateway.prod.ext.ams2.redhat.com [10.39.146.11]) by int-mx14.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id u5HCPs63013613; Fri, 17 Jun 2016 08:25:55 -0400 Subject: Re: [RFA 3/3] Move logic out of symbol_find_demangled_name To: Tom Tromey References: <1465051760-25840-1-git-send-email-tom@tromey.com> <1465051760-25840-4-git-send-email-tom@tromey.com> <86mvmywgj1.fsf@gmail.com> <8760tl6xbf.fsf@tromey.com> <9b062e13-3541-b122-2da8-1c61fe7fe55b@redhat.com> <871t496nk4.fsf@tromey.com> <7c3ef506-e9f3-968d-c192-c67c99e00269@redhat.com> <874m8sp6dh.fsf@tromey.com> Cc: Yao Qi , gdb-patches@sourceware.org From: Pedro Alves Message-ID: <9a9f6440-f369-d729-71ff-ea961aac3100@redhat.com> Date: Fri, 17 Jun 2016 12:25:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.1.1 MIME-Version: 1.0 In-Reply-To: <874m8sp6dh.fsf@tromey.com> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit X-SW-Source: 2016-06/txt/msg00299.txt.bz2 On 06/17/2016 09:27 AM, Tom Tromey wrote: > Pedro> Actually, AFAICS, the new code does the same thing, because the > Pedro> C++ version and the Rust version are exactly the same. > > Yeah, I forgot about that when replying. > > Pedro> IIUC, from Rust 1.9 onward, Rust uses C++ mangling, so basically > Pedro> there's no way to tell a C++ symbol from a Rust symbol from the > Pedro> mangled name alone. Correct? > > Yes. Java is in this situation as well. However I think it only > matters for minimal symbols as symbols coming from DWARF typically have > a language. OK. I still think we should have a comment clarifying this. The new comment mentions that we'll attempt demangling in the order the constants are defined, but doesn't explain the dependencies that led to the particular order you chose. I think we could tweak the comment at the top of enum language to something around this: Note that there's ambiguity between the mangling schemes of some of these languages, so some symbols could be successfully demangled by several languages. For that reason, the constants here are sorted in the order we'll attempt demangling them. For example: Java and Rust use C++ mangling, so must come after C++; Ada must come last (see ada_sniff_from_mangled_name). > > I think it would be better if Rust changed its mangling, but AFAIK > nobody has seriously proposed this there yet. Thanks, Pedro Alves