歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux readelf命令使用

Linux readelf命令使用

日期:2017/2/28 16:15:32   编辑:Linux教程

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

Copyright © Linux教程網 All Rights Reserved