objdump有点象那个快速查看之流的工具,就是以一种可阅读的格式让你更多地了解二进制文件可能带有的附加信息。
使用objdump显示vxWorks的文件头信息以及入口地址例子:
D:\ftproot>C:\Tornado2.2Arm\host\x86-win32\bin\objdumparm -f vxWorks_SoftDebug_arm
vxWorks_SoftDebug_arm:     file format elf32-littlearm
architecture: arm, flags 0x00000012:
EXEC_P, HAS_SYMS
start address 0x00010000

D:\ftproot>C:\Tornado2.2Arm\host\x86-win32\bin\objdumparm -f vxWorks_arm
vxWorks_arm:     file format elf32-littlearm
architecture: arm, flags 0x00000012:
EXEC_P, HAS_SYMS
start address 0x00010000

D:\ftproot>C:\Tornado2.2Ppc\host\x86-win32\bin\objdumpppc -f vxWorks_SoftDebug_ppc
vxWorks_SoftDebug_ppc:     file format elf32-powerpc
architecture: powerpc:common, flags 0x00000112:
EXEC_P, HAS_SYMS, D_PAGED
start address 0x00010000

D:\ftproot>C:\Tornado2.2Ppc\host\x86-win32\bin\objdumpppc -f vxWorks_ppc
vxWorks_ppc:     file format elf32-powerpc
architecture: powerpc:common, flags 0x00000012:
EXEC_P, HAS_SYMS
start address 0x00010000

 
 
选项
Desc
-a
--archive-header
有库文件时,显示库文件的头信息。即显示该库文件由那些什么格式的目标文件组成
-b bfdname
--target=bfdname
指定目标文件的格式
-C
--demangle[=style]
将低级符号名解析成用户级符号名。这样可以使C++函数具有可读性。例如00000000 T _ZN6MyTest3sumEii被解析成00000000 T MyTest::sum(int, int)。这样一来这样的符号便具有可读性
-g
--debugging
显示目标文件的调试信息
-d
--disassemble
反汇编含代码的段
-D
--disassemble-all
反汇编所有的段
-EB
-EL
--endian={big|little}
指定目标文件的endian
-f
--file-headers
显示目标文件的头信息
-h
--section-headers
--headers
显示目标文件的section headers。注意,在链接的过程中,会传递-Ttext-Tdata-Tbss选项给链接器,以指定textdatabss的具体地址。特别是在嵌入式系统开发过程中,常常需要指定这些地址。
-i
--info
显示支持的bfdnamemachine。其中bfdname可以用作-b bfdnamemachine可用于-m machine
-l
-line-numbers
配合-d-D-r选项,列出源文件和汇编代码之间的对应关系
-m machine
--architecture=machine
指定目标文件的architecture
-p
--private-headers
显示属于该目标文件格式特有的一些信息,如:
vector.o:     file format elf32-m68hc12
private flags = 2:[abi=16-bit int, 64-bit double, cpu=HC12] [memory=flat]
-r
--reloc
显示relocation entries。如源文件为
int abc(int a, int b);
int sum(int a, int b)
{
   return abc(a,b);
}
查看relocation entries,便会发现有一个“_abc”entry
-R
--dynamic-reloc
查看文件的dynamic relocation entries
-s
--full-contents
查看section的全部内容
-S
--source
反汇编时,将source code和汇编代码对应出来
--show-raw-insn
反汇编时,以16进制格式列出具体指令码
--no-show-raw-insn
反汇编时,不列出具体指令码
-t
--syms
列出symbol table entries
-T
--dynamic-syms
列出dynamic symbol table entries
-V
--version
列出objdump的版本号
-x
--all-headers
列出所有的头信息header information,该选项等同于-a –f –h –p –r –t