首页 > 代码库 > 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的信息