首页 > 代码库 > objcopy和objdump使用教程

objcopy和objdump使用教程

objcopy被用来复制一个目标文件的内容到另一个文件中,可以使用不同于源文件的格式来输出目的文件,即可以进行格式转换。

常用选项如下:


input-file、outfile

参数input-file和outfile分别表示输入目标文件(源目标文件)和输出目标文件(目的目标文件)。如果在命令行中没有明确地指定outfile,objcopy将创建一个临时文件来存放目标结果,然后使用input-file的名字重命名这个临时文件(此时,原来的input-file将被覆盖)。


-I bfdname或--input-target=bfdname

用来指明源文件的格式,bfdname是BFD库中描述的标准格式名。如果不指明源文件格式,objcopy会自己去分析源文件的格式,然后去和BFD中描述的各种格式比较,从而得知源文件的目标格式名。


-O bfdname或--output-target=bfdname

使用指定的格式来输出文件,bfdname是BFD库中描述的标准格式名。


-F bfdname或--target=bfdname

同时指明源文件、母的文件的格式。将源目标文件中的内容复制到目的目标文件的过程中,只进行复制不做格式转换,源目标文件是什么格式,目的目标文件就是什么格式。


-R sectionname或--remove-section=sectionname

从输出文件中删掉所有名为sectionname的段。该选项可以多次使用


-S或--strip-all

不从源文件中复制重定位信息和符号信息到目标文件中去。


-g或--strip-debug

不从源文件中复制调试符号到目标文件中去。


objdump用于显示二进制文件信息,常用来查看反汇编代码。

常用选项如下:

-b bfdname或-target=bfdname

指定目标码格式。这不是必须的,objdump能自动识别许多格式。可使用objdump -i命令查看支持的目标码格式列表。


--disassemble或-d

反汇编可执行段


--disassemble-all或-D

反汇编所有段


-EB或-EL或--endian={big|little}

指定字节序


--file-headers或-f

显示文件的整体头部摘要信息


--section-headers、--headers或-h

显示目标文件各个段的头部摘要信息


--info或-i

显示支持的目标文件格式或CPU架构


--section=name或-j name

仅显示指定section的信息