Hexagon Binutils GNU 手册(23)

240 篇文章 11 订阅

4.8 目标文件大小(Object file size)

hexagon-size
[-A|-B|–format compatibility]
[–help]
[-d|-o|-x|–radix number]
[-t|–totals]
[-V|–version]
[objfile…]

对象文件大小实用程序(utility)在其参数列表中列出每个对象或存档文件 objfile 的部分大小和总大小。 默认情况下,为存档中的每个目标文件或每个模块生成一行输出。

objfile… 参数指定要检查的目标文件。 如果没有指定,将使用文件 a.out。

目标文件大小实用程序列出以下信息:

  • 不可写段的总文件大小(text)
  • 可写段(data)的总文件大小
  • 可写段的总内存大小减去可写段的总文件大小 (bss)

目标文件大小实用程序显示的节名(text、 data、bss)并不直接等同于第 2.4 节中描述的文件节。 例如,文本可以包括文件部分 .text、.rodata、.tcm_code_cached 等。显示的部分大小也不包括部分之间的任何对齐填充。

注意 
    仅当指定的对象文件已链接时,显示的大小才会包括任何引用的库。  在这种情况下,包含的库大小仅反映库文件中使用的函数。  但是,如果库文件存储在存档文件中(第 4.3 节),则将包含存档中的所有库模块。

目标文件大小选项如下所述。
-A
-B
–format compatibility

使用这些选项之一,可以指定输出是否类似于 System V(使用 -A 或 --format sysv)或 Berkeley UNIX(使用 -B 或 --format berkeley)上等效大小实用程序的输出。 默认是类似于 Berkeley UNIX 的单行格式。

以下是 size 实用程序输出的 Berkeley(默认)格式示例:

$ size --format=Berkeley ranlib size
text data bss dec hex filename
294880 81920 11592 388392 5ed28 ranlib
294880 81920 11888 388688 5ee50 size

这是相同的数据,但显示更接近 System V 约定:

$ size --format=SysV ranlib size
ranlib :
section size addr
.text 294880 8192
.data81920 303104
.bss 11592 385024
Total 388392

size :
section size addr
.text 294880 8192
.data81920 303104
.bss 11888 385024
Total 388688

–help
显示可接受参数和选项的摘要。

-d
-o
-x
–radix number

使用这些选项之一,你可以控制是否以十进制指定每个部分的大小(-d 或 --radix 10); 八进制(-o,或 --radix 8); 或十六进制(-x 或 --radix 16)。 在 --radix 选项中,仅支持三个值(8、10、16)。 总大小总是以两个基数指定; -d 或 -x 输出为十进制和十六进制,如果使用 -o,则为八进制和十六进制。

-t
–totals

显示列出的所有对象的总数(仅限伯克利格式列表模式)。

-V
–version

显示size实用程序的版本号。

4.9 目标文件字符串(Object file strings)

hexagon-strings [-afov] [-min-len]
[-n min-len] [–bytes min-len]
[-t radix] [–radix radix]
[-] [–all] [–print-file-name]
[–help] [–version] file…

目标文件字符串实用程序打印指定文件中包含的字符串。 字符串被定义为具有以下属性的可打印字符序列:

  • 它们至少有 4 个字符长(或由命令选项指定的数字)
  • 它们后跟一个不可打印的字符

默认情况下,字符串实用程序仅打印目标文件的初始化和加载部分中的字符串; 对于其他类型的文件,它会打印整个文件中的字符串。

字符串实用程序主要用于确定非文本文件的内容。

字符串实用程序选项如下所述。

-a
–all
-

不要只扫描目标文件的初始化和加载部分; 扫描整个文件。

-f
–print-file-name

在每个字符串之前打印文件名。

–help
在标准输出上打印程序使用摘要并退出。

-min-len
-n min-len
–bytes min-len

打印长度至少为 min-len 个字符的字符序列,而不是默认的 4 个字符。

-o
就像选项“-to”一样。 其他版本的字符串实用程序有 -o 的行为,而不是 -td。 由于我们无法同时兼容这两种方式,因此我们只是选择了一种。

-t radix
–radix radix

在每个字符串之前打印文件中的偏移量。 单个字符参数指定偏移的基数:o 表示八进制,x 表示十六进制,或 d 表示十进制。

-v
–version

显示字符串实用程序的版本号。

4.10 Object file stripper

hexagon-strip [-s|–strip-all] [-S|-g|-d|–strip-debug]
[-K symbolname |–keep-symbol symbolname ]
[-N symbolname |–strip-symbol symbolname ]
[-w|–wildcard]
[-x|–discard-all ] [-X |–discard-locals]
[-R sectionname |–remove-section sectionname ]
[-o file ] [-p|–preserve-dates]
[–only-keep-debug]
[-v |–verbose] [-V|–version]
[–help]
objfile…

目标文件stripper实用程序丢弃目标文件 objfile 中的所有符号。 目标文件列表可以包括档案。 必须至少指定一个目标文件。

stripper实用程序修改其参数中命名的文件,而不是以不同的名称写入修改后的副本。

下面列出了stripper实用程序选项。
–help
显示stripper实用程序命令行选项的摘要。

-R sectionname
–remove-section sectionname

从输出文件中删除任何名为 sectionname 的部分。 可以多次指定此选项。 请注意,不恰当地使用此选项可能会使输出文件无法使用。

-s
–strip-all

删除所有符号。

-g
-S
-d
–strip-debug

仅删除调试符号。

–strip-unneeded
删除重定位处理不需要的所有符号。

-K symbolname
–keep-symbol symbolname

仅保留源文件中的符号 symbolname。 可以多次指定此选项。

-N symbolname
–strip-symbol symbolname

从源文件中删除符号 symbolname。 此选项可以多次指定,并且可以与 -K 以外的命令选项结合使用。

-w
–wildcard

启用目标文件stripper中的其他命令行选项以在符号名称中使用正则表达式。 问号 (?)、星号 (*)、反斜杠 () 和方括号 ([]) 运算符可用于符号名称中的任何位置。 如果符号名称的第一个字符是感叹号 (!),则该符号的开关意义相反。 例如:
-w -K !foo -K fo*
这导致目标文件stripper仅保留以 fo 开头的符号,符号 foo 除外。

-o file
将剥离的输出放在文件中,而不是替换现有文件。 使用此参数时,只能指定一个 objfile 参数。

-p
–preserve-dates

保留文件的访问和修改日期。

-x
–discard-all

删除非全局符号。

-X
–discard-locals

删除编译器生成的临时符号(第 2.5.2 节)

–only-keep-debug
剥离文件,删除不会被 --strip-debug 剥离的任何部分的内容,但保持调试部分不变。 所有注释部分都保留在输出中。

此选项应与对象复制器实用程序一起使用以创建由两部分组成的可执行文件:一个使用较少内存空间的小型剥离二进制文件,以及一个包含调试信息的较大文件。 要创建这些文件:
a. 像往常一样链接可执行文件。
b. 运行 objcopy --only-keep-debug file file.dbg 以创建带有调试信息的文件(.dbg 扩展名是任意的)。
c. 运行 objcopy --strip-debug 文件以创建剥离的可执行文件。
d. 运行 objcopy --add-gnu-debuglink=file.dbg 文件以将调试信息的链接添加到剥离的可执行文件中。

请注意,使用 --only-keep-debug 是可选的。 或者,可以使用命令条 --strip-debug 复制和处理完整文件。 --add-gnu-debuglink 指定的文件可以是完整的可执行文件。

注意 
    仅在完全链接的文件上使用此选项。在调试信息可能不完整的目标文件上使用它没有意义。  目前, .gnu_debuglink 部分支持仅存在一个带有调试信息的文件,而不是基于每个对象文件一个的多个文件名。

-V
–version

显示stripper实用程序的版本号。

-v
–verbose

列出输出中修改的所有目标文件。 对于档案,命令“strip -v”列出档案的所有成员。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值