如何获取源文件中定义的列表函数

时间:2014-10-07 10:41:52

标签: c++ c

例如我有以下源文件。

#define xyz 50
int global_var = 45;

struct abd
{
type data1;
type1 data2;
type2 data3;
}

int function1(arg1, arg2, arg3)
{

  //statements

}

user_defined_type function2 ( arg4,arg5,arg6)
{

//statements

}

void function3 ( argx, argy,argz)
{

 //statements

}

如何将输出设为 function1 function2 function3 。 我尝试使用perl读取文件,但是我无法从整个源文件中获取逻辑。

1 个答案:

答案 0 :(得分:2)

我不会去解析源代码,因为有太多复杂的C语言语法来覆盖它。而是将其编译为目标文件(gcc具有-c选项),然后使用nm命令获取已定义的符号,例如:

$ nm check.o 
0000000000000000 T function1
000000000000000f T function2
000000000000001e T function3
0000000000000000 D global_var

从这一点开始,您可以使用您想要的任何解析工具提取T类型的符号。

"T"
"t" The symbol is in the text (code) section.