llvm-strings - 打印字符串

概要

llvm-strings [选项] [输入…]

描述

llvm-strings 是一款旨在替代 GNU 的 strings 的工具,用于查找文件中的可打印字符串并将其写入标准输出流。可打印字符串是指任何至少包含四个(默认值)或更多可打印 ASCII 字符的序列。文件末尾或任何其他字节都会终止当前序列。

llvm-strings 会在指定的每个 input 文件中查找字符串。与 GNU strings 不同,它会搜索整个输入文件,而不管文件格式如何,而不是仅限于对象文件的某些部分。如果将“-”指定为 input,或者未指定 input,则程序会从标准输入流读取。

示例

$ cat input.txt
bars
foo
wibble blob
$ llvm-strings input.txt
bars
wibble blob

选项

--all, -a

静默忽略。为了与 GNU strings 兼容而存在。

--bytes=<length>, -n

设置要视为字符串的字节序列所需的最小可打印 ASCII 字符数。默认值为 4。

--help, -h

显示命令行选项的摘要。

--print-file-name, -f

在每个字符串之前显示包含文件的名称。

示例

$ llvm-strings --print-file-name test.o test.elf
test.o: _Z5hellov
test.o: some_bss
test.o: test.cpp
test.o: main
test.elf: test.cpp
test.elf: test2.cpp
test.elf: _Z5hellov
test.elf: main
test.elf: some_bss
--radix=<radix>, -t

在字符串之前并使用指定的基数显示每个字符串在文件中的偏移量。有效的 <radix> 值为 odx,分别表示八进制、十进制和十六进制。

示例

$ llvm-strings --radix=o test.o
    1054 _Z5hellov
    1066 .rela.text
    1101 .comment
    1112 some_bss
    1123 .bss
    1130 test.cpp
    1141 main
$ llvm-strings --radix=d test.o
    556 _Z5hellov
    566 .rela.text
    577 .comment
    586 some_bss
    595 .bss
    600 test.cpp
    609 main
$ llvm-strings -t x test.o
    22c _Z5hellov
    236 .rela.text
    241 .comment
    24a some_bss
    253 .bss
    258 test.cpp
    261 main
--version

显示 llvm-strings 可执行文件的版本。

@<FILE>

从响应文件 <FILE> 中读取命令行选项。

退出状态

llvm-strings 在发生错误时会以非零退出代码退出。否则,它会以代码 0 退出。

Bug

要报告 Bug,请访问 <https://github.com/llvm/llvm-project/labels/tools:llvm-strings/>。