2010-05-27 119 views

回答

2

否。目標文件基本上包含從符號名稱到地址的映射(您可以使用諸如nm之類的命令顯示),但絕對沒有類型信息。

我簡化了一些(有些符號被使用但未在對象文件中定義,其他符號在那裏定義),但答案仍然是否定的。

作爲一個例子,這裏是nm a.out對我上次編譯的任何隨機文件的結果:) 這個例子非常小,gcc內置的數量超過了我自己定義的符號數量。但沒有類型信息...

$ nm a.out 
0000200c D _NXArgc 
00002008 D _NXArgv 
00002000 D ___progname 
00001fbc t __dyld_func_lookup 
00001000 A __mh_execute_header 
00002004 D _environ 
     U _exit 
00001fca T _main 
     U _rand 
00002030 S _x 
00002010 d dyld__mach_header 
00001fa8 t dyld_stub_binding_helper 
00001f68 T start 
+0

這是不正確的,如果它編譯調試符號。 libbfd可能會讀取它,或者您可能能夠獲得一個庫,用於您正在使用的任何調試格式。 – 2010-05-27 20:39:29

+1

@Tim但是功能的參數對你來說仍然是個謎。 – joveha 2010-05-28 13:04:10