elfcompress - 目标文件的压缩/解压调试节
elfcompress [-fV] [-n name] [-t type] file...
elfcompress 命令用于在 ELF 目标文件中压缩或解压调试节。除非另有说明,否则会处理所有调试和注释节。
如果输入文件是归档文件(请参见 ar.h (3HEAD)),则会将归档文件视为一组独立文件。如果归档成员并非目标文件,则会保留不变。
elfcompress 无法修改包含在分段中的节。此类可分配的节会设置其 SHF_ALLOC 节标志。elfcompress 无法修改类型为 SHT_NOBITS 的节。–t 选项指定的压缩操作可能对候选节带来额外限制。请参见 –t 选项和附注。
当使用 –n 选项指定一个或多个要处理的节时,只会处理指定的节,其他所有节会保留未修改状态。如果没有使用 –n 选项,则 elfcompress 会选择与 –t 选项指定的压缩操作兼容的所有节。
支持以下选项:
缺省情况下,仅当压缩后生成的大小不超过原始数据大小时,elfcompress 才会压缩节。指定 –f 进行强制压缩,即使生成大小超过原始大小。
指定要处理的节的名称。elfcompress 可采用多个 –n 选项,以允许指定多个节。如果没有使用 –n,则 elfcompress 会选择与指定的压缩操作兼容的所有调试节。请参见 –t 选项和附注。
指定要执行的压缩操作。以下是可识别的压缩类型。
压缩的节已解压。
使用 ZLIB 压缩来压缩调试节。候选节必须不可分配(未设置 SHF_ALLOC 标志)并采用节类型 SHT_PROGBITS、SHT_SUNW_DEBUG、SHT_SUNW_DEBUGSTR 或 SHT_SUNW_ANNOTATE。生成的节将设置 SHF_COMPRESSED 节标志来标识使用了压缩。
使用 ZLIB 压缩来压缩调试节,使用 GNU 节压缩格式。候选节必须不可分配(未设置 SHF_ALLOC 标志)、无法拥有 SHT_NOBITS 类型,且必须拥有以 .debug 开始的名称。生成的节将重命名为以 .zdebug 开头来标识使用了压缩。
如果未指定 –t 选项,则效果等同于指定 –t zlib。
输出版本信息。
输出用法消息并立即退出。
zlib-gnu 压缩格式限制为名称以 .debug 开始的节,同时可将缺省 zlib 压缩格式应用于具有任意名称的节。如果指定了 –t zlib-gnu,但未指定 –n 选项,则会解压名称与 zlib-gnu 格式不兼容的之前压缩的任何节。
elfcompress 命令无法修改核心文件。
% elfcompress file示例 2 解压所有调试节
% elfcompress -t none file示例 3 压缩 .debug_info 节,使用 GNU 类型格式
% elfcompress -t zlib-gnu -n .debug_info file
临时文件
有关下列属性的说明,请参见 attributes(7):
|
ar(1)、as(1)、ld(1)、mcs(1)、strip(1)、elf(3ELF)、ar.h(3HEAD), zlib(3), a.out(5)、attributes(7)