diff --git a/llvm/docs/CommandGuide/llvm-strings.rst b/llvm/docs/CommandGuide/llvm-strings.rst --- a/llvm/docs/CommandGuide/llvm-strings.rst +++ b/llvm/docs/CommandGuide/llvm-strings.rst @@ -6,10 +6,128 @@ SYNOPSIS -------- -:program:`llvm-strings` [*options*] +:program:`llvm-strings` [*options*] [*input...*] DESCRIPTION ----------- -:program:`llvm-strings` is a tool that prints strings in files. The goal is to -make it a drop-in replacement for GNU's :program:`strings`. +:program:`llvm-strings` is a tool that prints the strings contained in files. It +is intended as a drop-in replacement for GNU's :program:`strings`, although +there are some differences. + +: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. + +A series of bytes is considered to be a string if it consists of printable ASCII +characters and is at least 4 characters long, or another length as specified by +the :option:`--bytes` option. The end of file, or any other byte terminates the +current sequence. All found strings are printed to the output, one per line. + +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=, -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=, -t + + Display the offset within the file of each string, before the string and using + the specified radix. Valid ```` 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 --radix=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:: @ + + Read command-line options from response 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 .