我编写了一个名为a.c的简单程序来理解x86机器上的符号表:
extern int foo;
int function(void){
return foo;
}
我编译它和readelf
$ gcc -c -m32 a.c
$ readelf -a a.o> a.log
a.log中的符号表如下所示:
Symbol table '.symtab' contains 10 entries:
Num: Value Size Type Bind Vis Ndx Name
0: 00000000 0 NOTYPE LOCAL DEFAULT UND
1: 00000000 0 FILE LOCAL DEFAULT ABS a.c
2: 00000000 0 SECTION LOCAL DEFAULT 1
3: 00000000 0 SECTION LOCAL DEFAULT 3
4: 00000000 0 SECTION LOCAL DEFAULT 4
5: 00000000 0 SECTION LOCAL DEFAULT 6
6: 00000000 0 SECTION LOCAL DEFAULT 7
7: 00000000 0 SECTION LOCAL DEFAULT 5
8: 00000000 10 FUNC GLOBAL DEFAULT 1 function
9: 00000000 0 NOTYPE GLOBAL DEFAULT UND foo
符号表条目0的目的是什么,2到7的条目是什么?