GCC C ++名称修改参考

时间:2017-01-07 18:26:34

标签: c++ gcc g++ name-mangling

环顾四周,我看到的主要是关于解码C ++符号而不是如何破坏它们的问题。是的,可以使用g++选项在包含要修改的符号的一些虚拟代码上调用-S,然后检查生成的程序集,但我还没有找到关于GCC名称修改的良好参考或规范。我能找到的最接近的是http://www.int0x80.gr/papers/name_mangling.pdf,但它似乎没有涵盖名称模板实例化被破坏或为什么_Z3fooIN3BarEE3FooIXT_EEv会转化为Foo<Bar> foo<Bar>()等事情(尽管我可以看到怎么样,但到底是什么IXT_EE?为什么N之后没有_Z?这甚至意味着什么?)。

1 个答案:

答案 0 :(得分:18)

来自gcc的来源(https://github.com/gcc-mirror/gcc/blob/master/gcc/cp/mangle.c):

  

此文件根据IA64 C ++实现了对C ++名称的修改   ABI规范。

以下是此规范的规则: https://itanium-cxx-abi.github.io/cxx-abi/abi.html#mangling

相关问题