xref: /llvm-project/llvm/docs/CommandGuide/llvm-strings.rst (revision bbce75e352be0637305a1b59ac5eca7175bceece)
1a28b8d78SJordan Rupprechtllvm-strings - print strings
2a28b8d78SJordan Rupprecht============================
3a28b8d78SJordan Rupprecht
4a28b8d78SJordan Rupprecht.. program:: llvm-strings
5a28b8d78SJordan Rupprecht
6a28b8d78SJordan RupprechtSYNOPSIS
7a28b8d78SJordan Rupprecht--------
8a28b8d78SJordan Rupprecht
975b6279cSJames Henderson:program:`llvm-strings` [*options*] [*input...*]
10a28b8d78SJordan Rupprecht
11a28b8d78SJordan RupprechtDESCRIPTION
12a28b8d78SJordan Rupprecht-----------
13a28b8d78SJordan Rupprecht
1475b6279cSJames Henderson:program:`llvm-strings` is a tool intended as a drop-in replacement for GNU's
1575b6279cSJames Henderson:program:`strings`, which looks for printable strings in files and writes them
1675b6279cSJames Hendersonto the standard output stream. A printable string is any sequence of four (by
1712e30999SJames Hendersondefault) or more printable ASCII characters. The end of the file, or any other
1812e30999SJames Hendersonbyte, terminates the current sequence.
1975b6279cSJames Henderson
2075b6279cSJames Henderson:program:`llvm-strings` looks for strings in each ``input`` file specified.
2175b6279cSJames HendersonUnlike GNU :program:`strings` it looks in the entire input file, regardless of
2275b6279cSJames Hendersonfile format, rather than restricting the search to certain sections of object
2375b6279cSJames Hendersonfiles. If "``-``" is specified as an ``input``, or no ``input`` is specified,
2475b6279cSJames Hendersonthe program reads from the standard input stream.
2575b6279cSJames Henderson
2675b6279cSJames HendersonEXAMPLE
2775b6279cSJames Henderson-------
2875b6279cSJames Henderson
2975b6279cSJames Henderson.. code-block:: console
3075b6279cSJames Henderson
3175b6279cSJames Henderson $ cat input.txt
3275b6279cSJames Henderson bars
3375b6279cSJames Henderson foo
3475b6279cSJames Henderson wibble blob
3575b6279cSJames Henderson $ llvm-strings input.txt
3675b6279cSJames Henderson bars
3775b6279cSJames Henderson wibble blob
3875b6279cSJames Henderson
3975b6279cSJames HendersonOPTIONS
4075b6279cSJames Henderson-------
4175b6279cSJames Henderson
4275b6279cSJames Henderson.. option:: --all, -a
4375b6279cSJames Henderson
4475b6279cSJames Henderson Silently ignored. Present for GNU :program:`strings` compatibility.
4575b6279cSJames Henderson
4675b6279cSJames Henderson.. option:: --bytes=<length>, -n
4775b6279cSJames Henderson
4875b6279cSJames Henderson Set the minimum number of printable ASCII characters required for a sequence of
4975b6279cSJames Henderson bytes to be considered a string. The default value is 4.
5075b6279cSJames Henderson
5175b6279cSJames Henderson.. option:: --help, -h
5275b6279cSJames Henderson
5375b6279cSJames Henderson Display a summary of command line options.
5475b6279cSJames Henderson
5575b6279cSJames Henderson.. option:: --print-file-name, -f
5675b6279cSJames Henderson
5775b6279cSJames Henderson Display the name of the containing file before each string.
5875b6279cSJames Henderson
5975b6279cSJames Henderson Example:
6075b6279cSJames Henderson
6175b6279cSJames Henderson .. code-block:: console
6275b6279cSJames Henderson
6375b6279cSJames Henderson  $ llvm-strings --print-file-name test.o test.elf
6475b6279cSJames Henderson  test.o: _Z5hellov
6575b6279cSJames Henderson  test.o: some_bss
6675b6279cSJames Henderson  test.o: test.cpp
6775b6279cSJames Henderson  test.o: main
6875b6279cSJames Henderson  test.elf: test.cpp
6975b6279cSJames Henderson  test.elf: test2.cpp
7075b6279cSJames Henderson  test.elf: _Z5hellov
7175b6279cSJames Henderson  test.elf: main
7275b6279cSJames Henderson  test.elf: some_bss
7375b6279cSJames Henderson
7475b6279cSJames Henderson.. option:: --radix=<radix>, -t
7575b6279cSJames Henderson
7675b6279cSJames Henderson Display the offset within the file of each string, before the string and using
7775b6279cSJames Henderson the specified radix. Valid ``<radix>`` values are ``o``, ``d`` and ``x`` for
7875b6279cSJames Henderson octal, decimal and hexadecimal respectively.
7975b6279cSJames Henderson
8075b6279cSJames Henderson Example:
8175b6279cSJames Henderson
8275b6279cSJames Henderson .. code-block:: console
8375b6279cSJames Henderson
8475b6279cSJames Henderson  $ llvm-strings --radix=o test.o
8575b6279cSJames Henderson      1054 _Z5hellov
8675b6279cSJames Henderson      1066 .rela.text
8775b6279cSJames Henderson      1101 .comment
8875b6279cSJames Henderson      1112 some_bss
8975b6279cSJames Henderson      1123 .bss
9075b6279cSJames Henderson      1130 test.cpp
9175b6279cSJames Henderson      1141 main
9275b6279cSJames Henderson  $ llvm-strings --radix=d test.o
9375b6279cSJames Henderson      556 _Z5hellov
9475b6279cSJames Henderson      566 .rela.text
9575b6279cSJames Henderson      577 .comment
9675b6279cSJames Henderson      586 some_bss
9775b6279cSJames Henderson      595 .bss
9875b6279cSJames Henderson      600 test.cpp
9975b6279cSJames Henderson      609 main
10075b6279cSJames Henderson  $ llvm-strings -t x test.o
10175b6279cSJames Henderson      22c _Z5hellov
10275b6279cSJames Henderson      236 .rela.text
10375b6279cSJames Henderson      241 .comment
10475b6279cSJames Henderson      24a some_bss
10575b6279cSJames Henderson      253 .bss
10675b6279cSJames Henderson      258 test.cpp
10775b6279cSJames Henderson      261 main
10875b6279cSJames Henderson
10975b6279cSJames Henderson.. option:: --version
11075b6279cSJames Henderson
11175b6279cSJames Henderson Display the version of the :program:`llvm-strings` executable.
11275b6279cSJames Henderson
11375b6279cSJames Henderson.. option:: @<FILE>
11475b6279cSJames Henderson
11575b6279cSJames Henderson Read command-line options from response file ``<FILE>``.
11675b6279cSJames Henderson
11775b6279cSJames HendersonEXIT STATUS
11875b6279cSJames Henderson-----------
11975b6279cSJames Henderson
12075b6279cSJames Henderson:program:`llvm-strings` exits with a non-zero exit code if there is an error.
12175b6279cSJames HendersonOtherwise, it exits with code 0.
12275b6279cSJames Henderson
12375b6279cSJames HendersonBUGS
12475b6279cSJames Henderson----
12575b6279cSJames Henderson
126*bbce75e3SChuanqi XuTo report bugs, please visit <https://github.com/llvm/llvm-project/labels/tools:llvm-strings/>.
127