This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
| Other format: | [Raw text] | |
> > Trying to print "i" will result in the following menu:
> >
> > (gdb) print i
> > Multiple matches for i
> > [0] cancel
> > [1] pck__first(int) at pck.adb:3
> > [2] pck__second(int) at pck.adb:7
> > >
> >
> > The expected output (particularly for choices 1 and 2) is:
> >
> > (gdb) p i
> > Multiple matches for i
> > [0] cancel
> > [1] pck.first.i at pck.adb:3
> > [2] pck.second.i at pck.adb:7
[...]
> The clever demangling lookup table was clever for C++, but less clever
> for other languages; you'll see that Java already has some
> special-case code, and the comments there (e.g. about the msymbol
> having the wrong demangling) also apply to Ada.
>
> I've no objection to this patch in principle, but you're doing it in
> the wrong place. If you already know the symbol is an Ada symbol, why
> go through all the rigamarole of putting it in the hash table?
Duh! I feel ashamed I didn't think of that, and even more so that
it took me a long while to understand what you meant. Thanks for
the suggestion. I propose the following patch:
2008-01-30 Joel Brobecker <brobecker@adacore.com>
* symtab.c (symbol_set_names): Do not add an entry in the demangling
hash table for Ada symbols. Just store the linkage name as is,
and leave the demangled_name as NULL.
Testcase unchanged:
2008-01-08 Joel Brobecker <brobecker@adacore.com>
* gdb.ada/sym_print_name: New test program.
* gdb.ada/sym_print_name.exp: New testcase.
Does it look better? All tested on x86-linux, no regression.
Thanks,
--
Joel
Attachment:
demangle.diff
Description: Text document
Attachment:
demangle-tc.diff
Description: Text document
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |