demangling (Ubuntu 64bit 12.04, dmd 64bit 2.060)
Carl Sturtivant
sturtivant at gmail.com
Mon Aug 20 13:45:47 PDT 2012
I've been looking at the objects etcetera produced by dmd, and
using D's function demangle in std.demangle to decrypt some of
the symbols found in such objects by nm.
http://sourceware.org/binutils/docs-2.22/binutils/nm.html
While demangle does produce a demangled version of some symbols,
it does not in other cases where they nevertheless look as if
they may be mangled names of some kind. I considered that perhaps
they are C++ mangled names, but have been unable to get nm to
unmangle them, even though it nominally knows about C++ name
mangling.
Is there a better analog of demangle I can use to translate back
some of these more intractable mangled names? I tried the one in
core.demangle but it did no better. Or is there somewhere I could
determine the demangling rules and implement them for myself? Any
suggestions will be gratefully received.
Here are some examples that are not demangled by
std.demangle.demangle :
_D13libd_demangle12__ModuleInfoZ
_D15TypeInfo_Struct6__vtblZ
_D3std5stdio12__ModuleInfoZ
_D3std6traits15__T8DemangleTkZ8Demangle6__initZ
_D47TypeInfo_S3std6traits15__T8DemangleTkZ8Demangle6__initZ
More information about the Digitalmars-d-learn
mailing list