strip - 删除目标文件中的符号表、调试和行编号信息
strip [-lVx] file...
strip 命令可删除 ELF 目标文件中的符号表 SHT_SYMTAB 及其相关联的字符串表、调试信息和行编号信息。即除了符号表及其相关字符串表外,还会删除以下部分:
.compcom .debug* .line .stab* .SUNW_ctf .zdebug*
一旦该删除流程完成,就能有限访问该文件的符号调试信息。因此,此命令只能在调试和测试过的生产模块上运行。
如果除处理成员外,还对通用归档文件(请参见 ar.h(3HEAD))执行 strip,则 strip 会删除归档符号表。必须首先执行带 –s 选项的 ar(1) 命令来恢复归档符号表后,才能通过 ld(1) 命令链接归档。
strip 用于降低目标文件所占用的文件存储开销。
可使用以下任意选项来控制从 ELF 目标文件中删除的消息量。支持以下选项:
仅分离行号信息。不分离符号表或调试信息。
输出版本信息。
不删除符号表。可能删除调试和行编号信息。
输出用法消息并立即退出。
支持下列操作数:
与执行文件对应的路径名。
有关影响 strip 执行的以下环境变量的说明,请参见 environ(7):LANG、LC_ALL、LC_CTYPE、LC_MESSAGES 和 NLSPATH。
将返回以下退出值:
成功完成。
出现错误。
临时文件
有关下列属性的说明,请参见 attributes(7):
|
ar(1)、as(1)、elfcompress(1)、ld(1)、mcs(1)、tmpnam(3C)、elf(3ELF)、ar.h(3HEAD)、a.out(5)、attributes(7)、environ(7)、standards(7)
如果符号表部分包含在分段中,或者文件是可重定位目标文件,则不会删除该符号表部分。
如果行编号和调试部分包含在分段中,或者其相关联的重定位部分包含在分段中,则不会删除该行编号和调试部分。
可使用 strip 命令来删除 ELF 目标文件中的标准预定义部分集。要按名称删除用户指定的部分,请参见 mcs(1)。
strip 命令无法修改核心文件。