aboutsummaryrefslogtreecommitdiff
path: root/llvm/docs/CommandGuide/llvm-strings.rst
blob: 0a9ab5dca0c1f24095d0b796052c087f715642d8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
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://github.com/llvm/llvm-project/labels/tools:llvm-strings/>.