2014-10-07 29 views
-12

例如,我有以下源文件。如何获取在源文件中定义的列表功能

#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 

} 

我怎样才能获得输出功能1函数2功能3。 我试图使用Perl读取文件,但我无法获取从整个源文件中提取函数的逻辑。

+3

这不是一个自由职业者门户网站,但Q&A网站,阅读如何问问题等[这里](https://stackoverflow.com/tour) – Majlik 2014-10-07 10:53:52

回答

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. 
相关问题