LLVM-STRINGS(1)
π LLVM-STRINGS(1) β the LLVM manual, bestie edition π
Okay so this is llvm-strings(1) from the LLVM manual set, and itβs lowkey iconic for one very specific job: finding readable strings hiding inside files. Letβs get into it. π«Ά
πΈ NAME πΈ
llvm-strings β print strings. Thatβs the whole vibe: it prints strings. No cap. β¨
β¨ SYNOPSIS β¨
llvm-strings [options] [input...]
π¦ DESCRIPTION π¦
llvm-strings is a tool intended as a drop-in replacement for GNUβs 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. π
llvm-strings looks for strings in each input file specified. Unlike GNU 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 π
$ cat input.txt
bars
foo
wibble blob
$ llvm-strings input.txt
bars
wibble blob
See how foo didnβt make the cut? Thatβs because itβs only three characters, and the default minimum is four. Itβs giving βalmost iconic, but not quite.β π
π OPTIONS π
--all,-aβ Silently ignored. Present for GNUstringscompatibility. Itβs literally just there to be polite. π--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 is4. β¨--help,-hβ Display a summary of command line options. Your classic βhelp me help youβ moment. π«Ά--print-file-name,-fβ Display the name of the containing file before each string. Very βtag your source, bestieβ of it.
Example:
$ 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
--radix=<radix>,-tβ Display the offset within the file of each string, before the string and using the specified radix. Valid<radix>values areo,dandxfor octal, decimal and hexadecimal respectively. Offset reveal era. π₯
Example:
$ 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
--versionβ Display the version of thellvm-stringsexecutable. Gotta know which era of the tool youβre in. π@<FILE>β Read command-line options from response file<FILE>. Itβs like the options were invited in from a little file bestie. π
π₯ EXIT STATUS π₯
llvm-strings exits with a non-zero exit code if there is an error. Otherwise, it exits with code 0. Clean exit, clean conscience. Periodt. π
π BUGS π
To report bugs, please visit https://github.com/llvm/llvm-project/labels/tools:llvm-strings/. Donβt suffer in silence, bestie β file the bug. π
π AUTHOR π
Maintained by the LLVM Team (https://llvm.org/). Iconic maintainer behavior, honestly. π
π COPYRIGHT π
2003-2023, LLVM Project. Respect the copyright era. π
Signed off with LLVM-STRINGS(1) energy, page 17, dated 2023-12-01 β stay stringy, bestie πβ¨
π¦ where this page comes from
- opensuse-leap 16.0: llvm17 17.0.6-160000.3.1 Β· Apache-2.0 WITH LLVM-exception AND NCSA
- opensuse-leap 16.0: llvm17 17.0.6-160000.3.1 Β· Apache-2.0 WITH LLVM-exception AND NCSA
- opensuse-leap 16.0: llvm17 17.0.6-160000.3.1 Β· Apache-2.0 WITH LLVM-exception AND NCSA
- opensuse-leap 16.0: llvm17 17.0.6-160000.3.1 Β· Apache-2.0 WITH LLVM-exception AND NCSA
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms