readelf,objcopy,objdump使用笔记
前些天做了两件事,1.strip符号表;2.查看so文件的代码是否inline。操作步骤如下
?
1.
??? readelf -sW libjvm.so | grep 'OBJECT *LOCAL *HIDDEN' | awk '{print $8}' | egrep '[.][0-9]+$' > strip_sym.lst
??? objcopy --strip-symbols=strip_sym.lst -v xxx.so
??? 这样得到的新so文件就不含有strip掉的符号信息了,strip过程时间会稍长一点。
?
2.
??? objdump -dw xxx.so > dumpxxx.txt
??? 通过dump出来的文件,可以看到汇编代码,进而判断函数是否inline了。
?
一、readelfman的描述,readelf - Displays information about ELF files
?
??? 什么是elf
??? Executable and linking format(ELF)文件是x86 Linux系统下的一种常用目标文件(object file)格式,具体可以继续去查一些资料。
?
??? -s选项是读符号信息,-W是整行输出,不截断。具体用法可以看man的文档
?
?
二、objcopy??? man的描述,objcopy - copy and translate object files
?
??? --strip-symbols选项是要strip掉的符号存储文件,具体用法参看man文档
?
三、objdump??? man的描述,objdump - display information from object files.
?
??? -d选项是输出汇编信息,-w是整行输出,不截断。具体用法参看man文档
?