嵌入式Linux移植——交叉编译工具集

常用工具:readelf、size、nm、strip、strings、objdump、objcopy、addr2line

readelf:读可执行文件的elf头

 1 ELF Header:
 2   Magic:   7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 
 3   Class:                             ELF32
 4   Data:                              2's complement, little endian
 5   Version:                           1 (current)
 6   OS/ABI:                            UNIX - System V
 7   ABI Version:                       0
 8   Type:                              DYN (Shared object file)
 9   Machine:                           ARM
10   Version:                           0x1
11   Entry point address:               0x34800000
12   Start of program headers:          52 (bytes into file)
13   Start of section headers:          729812 (bytes into file)
14   Flags:                             0x5000002, has entry point, Version5 EABI
15   Size of this header:               52 (bytes)
16   Size of program headers:           32 (bytes)
17   Number of program headers:         3
18   Size of section headers:           40 (bytes)
19   Number of section headers:         25
20   Section header string table index: 22
readelf

 size:读取可执行程序的大小

binge@ubuntu14:~/user/my_share/u-boot-2012.10$ size u-boot
text	data	bss	dec	hex	filename
149612	3304	8384	161300	27614	u-boot

nm:常用于查看可执行程序的符号列表(便于人去观看与程序执行无关的列表)
T:全局函数标签  t:被static修饰的函数区间  D:全局变量区  d:局部变量区被static修饰 
strip:剔除符号列表
strings:查看可执行程序中的常量字符串(是否剔除符号表与此命令成功与否无关)
objcopy:剔除可执行文件的头信息
代码调试指令:objdump 、hexdump

反汇编查看文件(输出C源代码和反汇编出来的指令对照的格式)  arm-linux-objdump -S  文件名

在管道中查看:arm-linux-objdump -S 文件名|less

猜你喜欢

转载自www.cnblogs.com/embeded-linux/p/10505328.html
今日推荐