This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [RFA 3/3] Move logic out of symbol_find_demangled_name
- From: Pedro Alves <palves at redhat dot com>
- To: Tom Tromey <tom at tromey dot com>
- Cc: Yao Qi <qiyaoltc at gmail dot com>, gdb-patches at sourceware dot org
- Date: Fri, 17 Jun 2016 13:25:54 +0100
- Subject: Re: [RFA 3/3] Move logic out of symbol_find_demangled_name
- Authentication-results: sourceware.org; auth=none
- References: <1465051760-25840-1-git-send-email-tom at tromey dot com> <1465051760-25840-4-git-send-email-tom at tromey dot com> <86mvmywgj1 dot fsf at gmail dot com> <8760tl6xbf dot fsf at tromey dot com> <9b062e13-3541-b122-2da8-1c61fe7fe55b at redhat dot com> <871t496nk4 dot fsf at tromey dot com> <7c3ef506-e9f3-968d-c192-c67c99e00269 at redhat dot com> <874m8sp6dh dot fsf at tromey dot com>
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