【问题标题】:GCC C++ Name mangling referenceGCC C++ 名称修改参考
【发布时间】:2017-05-22 08:28:03
【问题描述】:

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

【问题讨论】:

  • 查找 GCC 使用的 Itanium ABI for C++。

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


【解决方案1】:

引用自 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-07
    • 2012-11-03
    • 1970-01-01
    • 2016-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多