llvm-for-llvmta/docs/CommandGuide/llvm-strings.rst

131 lines
2.9 KiB
ReStructuredText
Raw Normal View History

2022-04-25 10:02:23 +02:00
llvm-strings - print strings
============================
.. program:: llvm-strings
SYNOPSIS
--------
:program:`llvm-strings` [*options*] [*input...*]
DESCRIPTION
-----------
:program:`llvm-strings` is a tool intended as a drop-in replacement for GNU's
:program:`strings`, which looks for printable strings in files and writes them
to the standard output stream. A printable string is any sequence of four (by
default) or more printable ASCII characters. The end of the file, or any other
byte, terminates the current sequence.
:program:`llvm-strings` looks for strings in each ``input`` file specified.
Unlike GNU :program:`strings` it looks in the entire input file, regardless of
file format, rather than restricting the search to certain sections of object
files. If "``-``" is specified as an ``input``, or no ``input`` is specified,
the program reads from the standard input stream.
EXAMPLE
-------
.. code-block:: console
$ cat input.txt
bars
foo
wibble blob
$ llvm-strings input.txt
bars
wibble blob
OPTIONS
-------
.. option:: --all, -a
Silently ignored. Present for GNU :program:`strings` compatibility.
.. option:: --bytes=<length>, -n
Set the minimum number of printable ASCII characters required for a sequence of
bytes to be considered a string. The default value is 4.
.. option:: --help, -h
Display a summary of command line options.
.. option:: --help-list
Display an uncategorized summary of command line options.
.. option:: --print-file-name, -f
Display the name of the containing file before each string.
Example:
.. code-block:: console
$ 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
.. option:: --radix=<radix>, -t
Display the offset within the file of each string, before the string and using
the specified radix. Valid ``<radix>`` values are ``o``, ``d`` and ``x`` for
octal, decimal and hexadecimal respectively.
Example:
.. code-block:: console
$ 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
.. option:: --version
Display the version of the :program:`llvm-strings` executable.
.. option:: @<FILE>
Read command-line options from response file ``<FILE>``.
EXIT STATUS
-----------
:program:`llvm-strings` exits with a non-zero exit code if there is an error.
Otherwise, it exits with code 0.
BUGS
----
To report bugs, please visit <https://bugs.llvm.org/>.