例如我有以下源文件。
#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读取文件,但是我无法从整个源文件中获取逻辑。
答案 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.