This is the mail archive of the
gdb@sources.redhat.com
mailing list for the GDB project.
Demangling and searches
- From: Paul Hilfinger <hilfingr at CS dot Berkeley dot EDU>
- To: Elena Zannoni <ezannoni at redhat dot com>, Adam Fedor <fedor at doc dot com>, GDB Patches <gdb at sources dot redhat dot com>, Daniel Jacobowitz <drow at mvista dot com>
- Date: Tue, 07 Jan 2003 15:54:36 -0800
- Subject: Demangling and searches
For some time, I've been meaning to ask a basic question about GDB
search strategy: for language implementations that mangle their
identifiers, the standard procedure in GDB at the moment is to search
for the demangled identifier among the demangled identifiers of the
symbol table, and to speed this search up by precomputing and storing
the demangled symbol names. Why?
We used to do that for Ada mode in GDB, but subsequently changed our
approach entirely. For Ada, we MANGLE the symbol we're searching for
and then search among the MANGLED (i.e., raw, unmodified, warm-from-
the-executable) names. We do very little demangling as a result, and
do not devote any storage to demangled names. Of course, we do have
to demangle during the 'info XXX' symbol searches, but that is not a
common operation (at least for our customers), and therefore we saw
little to be gained by storing the demangled names.
Is there some unfortunate feature of C++ and ObjC mangling that
completely prevents our approach for those languages? What was the
rationale behind the current strategy?
Thanks for the information.
Paul Hilfinger