本人初学者,以下仅为个人理解
readelf
-h 查看elf文件的elf头信息
-l 查看elf文件的程序段头(一般是看可执行文件)
-s 查看elf文件的符号表,相对不带选项的nm可以看到符号所在的段
-S 查看elf文件的节头(一般是看可重定位文件)
-r 查看需要重定位的符号(可执行文件中一般不用重定位,本选项主要用于可重定位目标文件)
objdump
-d 反汇编elf文件或者目标文件(.o),只能反汇编代码段(指令段)
其他
size -A 文件名 --radix 16 : 查看elf文件的程序段头,大小,地址,以十六进制表示
nm : 默认显示所有符号以及所对应的地址(默认不显示所在段)
联合指令
先用readelf -s 查看符号表,可获得该符号在节头表中的index,然后readelf -S在节头表中根据index查看该符号到底放在了哪个段