objdump命令在linux系统中主要是用于查看文件组成信息,以用户可阅读的格式,将信息显示出来。不过需要注意的是objdump命令只支持查看可执行文件或者其他二进制文件,其他可阅读的如.c、.txt文件,objdump命令无法查看。
命令格式 objdump 参数 文件名;参数不可以为空;
如图1,使用objdump --help命令查看objdump命令支持哪些参数:
图1
参数说明
-a参数:显示档案头信息,即目标文件的文件格式信息,和file命令类似,如图:
图2
-f参数:显示整个文件头信息,包括档案头信息,如图:
图3
-p参数:显示对象文件格式特定的文件头内容;如图:
图4
-P(大写p)参数:打印目标文件格式的特定信息,其后面还根据文件的类型,选择不同的参数,如XCOFF支持header、aout、syms、sections参数等,PE支持header、sections参数,而常见的ELF则不支持使用该参数,如常见的可执行文件则是ELF格式的。
-h参数:显示文件中的section头信息;
-x参数:显示目标文件所有组成信息,包括符号表等信息,相当于同时使用-a,-f,-h,-p,-r,-t参数;
-d参数:显示目标文件汇编部分的信息,如图:
图5
-D参数:和-d参数类似,不过-D参数显示的所有信息;
-S(大写s)参数:将混合了反汇编的源代码显示出来;
-s参数:显示sections的全部内容,但是不显示空的sections;
-g参数:显示目标文件的调试信息
-r参数:显示文件中的重定位入口;建议和-d参数一起使用,重定位部分会以反汇编的格式打印出来;
图6
-t参数:显示文件的符号表入口;
-T参数:和-t参数作用一样,但是-T参数仅仅支持动态目标文件,如动态库;
-W参数:如果文件中存在调试段的信息,则会将其显示出来;