Linux readelf命令使用

jackxiang 2012-5-14 09:54 | |

在: http://hi.baidu.com/doyoueat/blog/item/2593153a88604b3371cf6c65.html
看到有兄弟肜: readelf -s libcal.so ,于是查了一下这个命令,摘录如下:


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做的那样。

你也可以参考:http://blog.csdn.net/eroswang/article/details/1967243

作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:https://jackxiang.com/post/5226/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!

评论列表
2012-6-5 04:31 | hxngb9af Email Homepage
支持楼主,长见识了
分页: 1/1 第一页 1 最后页
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]