0.阅读链接
如何在Linux ELF格式的文件(可执行binary,以及so文件)中定位到对应的函数位置
1.用 dwarfdump来看符号表的信息
gcc -g编译出来的代码会比不加-g参数编译出来的代码多出"调试信息"和"符号表".
dwarfdump a.out 可以看符号表的信息
gcc -g main.c -m32 -o main.debug (main.debug可以用dwarf和readelf看到调试信息的)
gcc main.c -m32 -o main.nodebug (用dwarf和readelf观察main.nodebug是看不到调试信息的,经过strip之后连符号表也会消失)
2.用 readelf来看目标文件中的section
首先要明白我们的可执行程序是一个ELF文件,ELF的百度百科介绍. ELF文件解析和加载.
3.strip可以抹去debug和符号表的信息
如上,strip可以将一个具有debug功能的ELF文件变成一个没有debug功能的ELF文件,会将其调试信息号符号表信息都去除.