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:: --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/>.
