问题
is there any C++ name-mangling decoder for g++?
回答1:
You can use c++filt to demangle c++ symbols. For instance
$ c++filt -n _Z1fv
f()
回答2:
c++filt, example usage here:
Can we see the template instantiated code by C++ compiler
回答3:
You may also be interested on the -C
option of objdump
:
objdump -CSr main.o
which demangles relocation references like:
char *sn = new char[4];
10: bf 04 00 00 00 mov $0x4,%edi
15: e8 00 00 00 00 callq 1a <main+0x1a>
16: R_X86_64_PC32 operator new[](unsigned long)-0x4
Without -C
it would show the mangled name _Znam
.
See also: Can objdump un-mangle names of C++ template functions?
There are also some online demanglers mentioned at Is there an online name demangler for C++? like http://demangler.com/ If it exists, there is SaaS of it.
nm
also has a -C
option.
来源:https://stackoverflow.com/questions/4468770/c-name-mangling-decoder-for-g