感谢支持
我们一直在努力

Linux readelf命令使用

readelf用来显示ELF格式目标文件的信息.可通过参数选项来控制显示哪些特定信息。


(注意: readelf不支持显示archive文档, 也不支持64位的ELF文件)。


使用方法1:


查看共享库的依赖库(NEEDED)和搜索名(SONAME)。


readelf -d <file_name>


例如:


#readelf -d libuClibc-0.9.30rc2.so


Dynamic section at offset 0x90f50 contains 18 entries:


Tag Type Name/Value


0x00000001 (NEEDED) Shared library: [ld-uClibc.so.0]


0x0000000e (SONAME) Library soname: [libc.so.0]


……


使用方法2:


显示ELF头信息


readelf -h <file_name>


例如:


#readelf -h libuClibc-0.9.30rc2.so


ELF Header:


Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00


Class: ELF32


Data: 2’s complement, little endian


Version: 1 (current)


OS/ABI: UNIX – System V


ABI Version: 0


Type: DYN (Shared object file)


……


与objdump命令的区别


1) objdump使用了bfd库进行文件读取,而readelf则没有,另外写的一套代码,且对一些条件的判断并不是很严格。比如对于没有指定处理方式的CPU类型,BFD库将拒绝往下执行,readelf还是可以显示其内容。


2) readelf可以显示调试信息,而objdump则没有。但是实际上bfd库支持DWARF的处理,通过简单处理objdump也可以显示调试信息,就如同nm做的那样。

赞(0) 打赏
转载请注明出处:服务器评测 » Linux readelf命令使用
分享到: 更多 (0)

听说打赏我的人,都进福布斯排行榜啦!

支付宝扫一扫打赏

微信扫一扫打赏