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 请求在显示之前解压缩由x,R或p选项转储的节。如果部分是 没有压缩然后它们按原样显示。 -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)