在哪里可以找到 SunPro CC 使用的名称修改方案的文档

逆向工程 C++ 斯帕克 改名
2021-06-23 22:51:10

我有一些 SPARC 二进制文件,它们似乎是用 SunPro CC 编译器编译的。二进制文件中的符号指的是一个非常早期的 C++ 实现(前命名空间),如下所示:

__0oHistreamrsRUl.
__0oHistreamrsRi.
__0oHistreamrsRf.
__0oKistrstreamdtv.
__0oHistreamrsPc.
__0oKistrstreamctPCc.
__0oNIostream_initdtv.
__0oNIostream_initctv.

看着这些,我猜测它们对应于以下方法:

istream::operator >>(unsigned long);
istream::operator >>(int);
istream::operator >>(float);
istream::~istream();
istream::operator >>(char *);
istream::operator(const char *);
ostream_init::~ostream_init();
ostream_init::ostream_init();

为了取得进一步的进展,我想了解这里使用的 mangling 方案,但是我的 Google-fu 太弱了。在哪里可以找到有关此处使用的名称修改方案的文档?

2个回答

我在 archive.org 上找到了以下文档,它是 Sun WorkShop™ for Solaris 2.x 的一部分

mangling.ps

应该可以c++filt直接使用注意不要使用来自binutils. 确保使用正确的安装路径,例如:

  • /opt/SolarisStudio/solarisstudio12.3/prod/bin/c++filt