2014-10-07 70 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. 
相關問題