用于g ++的C ++名称修改解码器?

时间:2010-12-17 08:26:40

标签: c++ name-mangling name-decoration

有没有用于g ++的C ++名称修改解码器?

3 个答案:

答案 0 :(得分:50)

您可以使用c ++ filt来解码c ++符号。例如

$ c++filt -n _Z1fv
f()

答案 1 :(得分:11)

c ++ filt,这里的示例用法:

Can we see the template instantiated code by C++ compiler

答案 2 :(得分:2)

您可能还对-C的{​​{1}}选项感兴趣:

objdump

解码重定位引用,如:

objdump -CSr main.o

如果没有 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 ,则会显示错误的名称-C

另请参阅:Can objdump un-mangle names of C++ template functions?

还有一些在Is there an online name demangler for C++?提到的在线解码器,如http://demangler.com/如果存在,则有SaaS。

_Znam也有nm选项。