将函数签名从编译器语言转换为c ++

stn*_*tnr 2 c++ linker g++

嘿伙计们,我需要列出链接器输出中列出的一些函数.我得到的语法如下:

int foo(int num,double dnum, Temp & temp) (in namespace "funcsns")
Run Code Online (Sandbox Code Playgroud)

变成:

.text._ZN7funcsns3fooEidRNS_4TempE
Run Code Online (Sandbox Code Playgroud)

(您可能从"未定义的符号"和其他一些打印函数名称的链接错误中知道它)

现在,我可以编写一个脚本,以某种方式将其变成可读的东西,但我想知道是否有一种聪明的方法.

请分享您的想法!
谢谢.

Wyz*_*a-- 7

在使用GNU工具链的系统上,该c++filt程序完全符合您的要求.它是"binutils"包的一部分.关于其他系统的Dunno.

文本." 不是被篡改的名字的一部分.运行c++filt _ZN7funcsns3fooEidRNS_4TempE收益率funcsns::foo(int, double, funcsns::Temp&).