每天一个linux命令(72):readelf 命令

readelf 命令

名称         

       readelf  - 显示有关ELF文件的信息。

大纲         

readelf [-a|--all]
               [-h|--file-header]
               [-l|--program-headers|--segments]
               [-S|--section-headers|--sections]
               [-g|--section-groups]
               [-t|--section-details]
               [-e|--headers]
               [-s|--syms|--symbols]
               [--dyn-syms]
               [-n|--notes]
               [-r|--relocs]
               [-u|--unwind]
               [-d|--dynamic]
               [-V|--version-info]
               [-A|--arch-specific]
               [-D|--use-dynamic]
               [-x <number or name>|--hex-dump=<number or name>]
               [-p <number or name>|--string-dump=<number or name>]
               [-R <number or name>|--relocated-dump=<number or name>]
               [-z|--decompress]
               [-c|--archive-index]
               [-w[lLiaprmfFsoRtUuTgAckK]|
                --debug-dump[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames-interp,=str,=loc,=Ranges,=pubtypes,=trace_info,=trace_abbrev,=trace_aranges,=gdb_index,=addr,=cu_index,=links,=follow-links]]
               [--dwarf-depth=n]
               [--dwarf-start=n]
               [-I|--histogram]
               [-v|--version]
               [-W|--wide]
               [-H|--help]
               elffile...

描述         

       readelf显示有关一个或多个ELF格式对象
       文件的信息。选项控制要显示的特定信息。elffile ...是要检查的目标文件。支持32位和64位
       ELF文件,以及包含ELF文件的存档。
       该程序执行与objdump类似的功能,但它
       更详细,并且它独立于BFD库存在,因此如果BFD中
       存在错误,则readelf将不会受到影响。

     

选项         

       这里显示为替代方案的长选项和短选项是等价的。除-v或-H外,必须提供至少一个选项。
       -a 
       --all 
           相当于指定--file-header, --program-headers,
           --sections, --symbols, --relocs, --dynamic, --notes,
           --version-info, --arch-specific, --unwind, --section-groups and
           --histogram.
          注意-这个选项本身不启用-use-dynamic,所以如果命令行上没有这个选项,那么将不会显示动态符号和动态重定位。

       -h 
       --file-header 
           显示文件开头的ELF头中包含的信息。

       -l 
       --program-headers 
       --segments 
           显示文件段头中包含的信息(如果有)。

       -S 
       --sections 
       --section-headers 
           显示文件节标题中包含的信息(如果有)。

       -G
       --section-groups 
           显示文件的节组中包含的信息(如果有)。

       -t 
       --section-details 
           显示详细的部分信息。意味着-S。

       -s 
       --symbols 
       --syms 
           显示文件的符号表部分中的条目(如果
           有)。如果符号具有与之关联的版本信息,
           则也会显示该符号。版本字符串显示
           为符号名称的后缀,前面带有@字符。对于
           例如foo的@ VER_1。如果版本是默认版本
           在解析对符号的无版本引用时使用它然后
           显示为后缀为两个@字符的后缀。对于
           例如fOO @@ VER_2。

       --dyn-syms 
           显示文件的动态符号表部分中的条目(如果有)。输出格式
           与--syms选项使用的格式相同。

       -e 
       --headers 
           显示文件中的所有标头。相当于-h -l -S。

       -n 
       --notes 
           显示NOTE段和/或部分的内容(如果有)。

       -r 
       --relocs     
           显示文件重定位部分的内容(如果有)。

       -u 
       --unwind 
           显示文件的展开部分的内容(如果有)。目前仅支持IA64 ELF文件的展开部分以及ARM 
           展开表(“。ARM.exidx”/“。ARM.extab”)。如果尚未为您的体系结构实现支持,则可以尝试
           使用--debug-dump = frames--debug-dump = frames -interp选项转储.eh_frames部分的内容。

       -d 
       --dynamic
           显示文件动态部分的内容(如果有)。

       -V 
       --version-info 
           显示文件中版本部分的内容,它们是否存在。

       -A 
       --arch-specific 
           显示文件中特定于体系结构的信息(如果有)。

       -D 
       --use-dynamic 
           显示符号时,此选项使readelf使用
           文件动态部分中的符号哈希表,而不是符号
           表部分。
           显示重定位时,此选项可显示readelf
           动态重定位而不是静态重定位。
  
       -x <number or name> 
       --hex-dump = <number or name> 
           以十六进制
           字节显示指示部分的内容。数字在
           节表中按索引标识特定节; 任何其他字符串标识
           目标文件中具有该名称的所有部分。

       -R <number or name> 
       --relocated-dump = <number or name> 
           以十六进制
           字节显示指示部分的内容。数字在
           节表中按索引标识特定节; 任何其他字符串都标识所有部分
           目标文件中的名称。该部分的内容将在
           显示之前重新定位。

       -p <number or name> 
       --string-dump = <number or name> 
           将指示部分的内容显示为可打印
           字符串。数字在
           节表中按索引标识特定节; 任何其他字符串标识
           目标文件中具有该名称的所有部分。
     
       -z 
       --decompress 
           请求在显示之前解压缩由xRp选项转储的节。如果部分是
           没有压缩然后它们按原样显示。

       -c 
       --archive-index 
           显示二进制归档的标题部分中包含的文件符号索引信息。执行相同的功能作为
           所述 t 命令到 ar ,但不使用BFD库。

       -w [lLiaprmfFsoRtUuTgAckK] 
       --debug-dump [= rawline,= codedline,= info,= abbrev,= pubnames,= aranges,= macro,= frames,= frames-interp,= str,= loc,= Ranges,= pubtypes,= trace_info,= trace_abbrev,= trace_aranges,= gdb_index,= addr,= cu_index,= links,= follow-links] 
           显示文件中DWARF调试部分的内容(如果
           有)。压缩的调试部分是自动的
           在显示之前(暂时)解压缩。如果
           交换机后面有一个或多个可选字母或单词,则
           只会转储那些类型的数据。字母和单词
           引用以下信息:

           “a” 
           “= abbrev” 
               显示.debug_abbrev部分的内容。

           “A” 
           “= addr” 
               显示.debug_addr部分的内容。

           “c” 
           “= cu_index” 
               显示的内容.debug_tu_index部分。

           “f” 
           “= frames” 
               显示.debug_frame部分的原始内容。

           “F” 
           “= frame-interp” 
               显示.debug_frame部分的解释内容。

           “g” 
           “= gdb_index” 
               显示.gdb_index和/或.debug_names 
               部分的内容。

           “i” 
           “= info” 
               显示.debug_info部分的内容。注意:
               从这个选项输出也可以通过使用受限制
               的--dwarf深入--dwarf启动选项。

           “k” 
           “= links” 
               显示.gnu_debuglink和/或
                .gnu_debugaltlink部分的内容。
               如果由.debug_info部分中的
               DW_AT_GNU_dwo_name或DW_AT_dwo_name属性指定了一个,则还显示指向单独的矮化对象文件(dwo)的链接。
           “K” 
           “=follow-links”
               在链接的单独调试信息文件中找到。
               如果主文件和单独的调试信息
               文件包含具有相同名称的节,则可能导致显示
               相同调试节的多个版本。
               此外,在显示DWARF属性时,如果
               找到引用单独的调试信息文件的表单,则
               还将显示引用的内容。
           “l” 
           “= rawline” 以原始
               格式
               显示.debug_line部分的内容。

           “L” 
           "=decodedline"
               显示.debug_line部分的解释内容。

           “m” 
           “= macro” 
               显示.debug_macro和/或
                .debug_macinfo部分的内容。

           “o” 
           “= loc” 
               显示.debug_loc和/或
                .debug_loclists部分的内容。

           “p” 
           “= pubnames” 
               显示.debug_pubnames和/或
                .debug_gnu_pubnames部分的内容。

           “r”
           “= aranges” 
               显示.debug_aranges部分的内容。

           “R” 
           “= Ranges” 
               显示.debug_ranges和/或
                .debug_rnglists部分的内容。

           “s” 
           “= str” 
               显示.debug_str.debug_line_str 
               和/或.debug_str_offsets部分的内容。

           “t” 
           “= pubtype” 
               显示的内容.debug_gnu_pubtypes部分。

           “T” 
           “= trace_aranges” 
               显示.trace_aranges部分的内容。

           “u” 
           “= trace_abbrev” 
               显示.trace_abbrev部分的内容。

           “U” 
           “= trace_info” 
               显示.trace_info部分的内容。

           注:显示的内容.debug_static_funcs.debug_static_vars和debug_weaknames部分目前不受支持。


       --dwarf-depth = n 
           将“.debug_info”部分的转储限制为n个子节点。这
           仅适用于--debug-dump = info。默认是打印
           所有DIE; n的特殊值0 也会产生这种效果。

           对于n的非零值,将
           不打印处于或等于n级的DIE 。n的范围是从零开始的。

       --dwarf-start = n 
           仅打印以编号为n的DIE开头的DIE 。这仅
           适用于--debug-dump = info。

           如果指定,此选项将禁止
           在DIE编号为n之前打印任何标题信息和所有DIE 。只会
           打印指定DIE的兄弟姐妹和孩子。

           这可以与--dwarf-depth一起使用。

        -I 
        --histogram 
           显示符号表内容时显示桶列表长度的直方图。

        -v 
        --version 
           显示readelf的版本号。

        -W 
        --wide 
           不要断开输出行以适应80列。默认情况下,readelf中断64位ELF文件的节头和段清单行,以便它们适合80列。此选项
           使readelf打印每个节标题resp。每个段
           只有一行,在80列以上的终端上可读性更高。

        -H 
        --help 
           显示readelf理解的命令行选项。

        @ file文件中读取命令行选项。
           插入的选项将替换原始的@ file选项。如果文件没有
           存在或不能被读取,那么该选项将按
           字面处理,而不是删除。
           文件中的选项由空格分隔。通过用单引号或双引号括起整个选项,可以在选项中包含空白字符。
           可以通过在字符前加上反斜杠来包含任何字符(包括反斜杠)。该文件本身可能包含其他@ 文件选项; 任何此类选项将以
           递归方式处理。

另请参见         

       objdump(1),以及binutils的Info条目。

COPYRIGHT         

       版权所有(c)1991-2019 Free Software Foundation,Inc。
       根据GNU自由文档许可证1.3版或
       自由软件基金会发布的任何更新版本的条款,

       允许复制,分发和/或修改本文档; 没有
       不变的部分,没有封面文本,没有封底
       文本。许可证的副本包含在标题为
       “GNU自由文档许可证”的部分中。

COLOPHON         

       该页面是binutils(用于处理
       可执行二进制文件的工具集合)项目的一部分。有关该项目的信息
       ,请访问 〈http : //www.gnu.org/software/binutils/〉 。如果你有
       这个手册页错误报告,见
       〈 http://sourceware.org/bugzilla/enter_bug.cgi?product=binutils 〉。
       这个页面是
       从2019-07-28的〈https : //ftp.gnu.org/gnu/binutils/〉取得的tarball binutils-2.32.tar.gz获得的。如果您
       在此HTML版本的页面中发现任何渲染问题,或者您
       相信有一个更好或更新的页面来源,或者
       您对此
       COLOPHON中的信息进行了更正或改进(这不是原始手册页的一部分),发送邮件
       到man-pages @ man7 .org binutils-2.31.90 2019-01-19 READELF(1)

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值