C++符号修改和符号改编
函数签名:函数签名包含了一个函数的信息,包括函数名,它的参数类型,它所在的类和命名空间等其他信息
GCC的基本C++名称修饰方法:所有的符号都以“_Z”开头,对于嵌套的名字(在名称空间或在类里),后紧跟“N”,然后是各个名称空间和类的名字,每个名字前是名字字符串长度,再以“E”结尾,函数的参数紧跟在E后面
例子:
int func(int); float func(float) class C { int func(int); class C2 { int func (int); }; }; namespace N { int func{int} class C { int func(int) }; };
可以用binutils中的c++filt工具来解析被修饰过的名称,如
$c++ filt _ZN1N1C4funcEi