LLVM-STRINGS(1)

πŸ’– LLVM-STRINGS(1) β€” the llvm-strings glow-up πŸ’–

okay bestie, welcome to llvm-strings, from the LLVM fam. this is the little tool that goes digging through your files looking for printable strings and then yells them at your terminal. she's giving main character energy, she's giving drop-in replacement, she's giving ✨utility✨. let's get into it.


✨ NAME ✨

llvm-strings β€” print strings. that's it. that's the whole job. short king behavior, honestly.


🌈 SYNOPSIS 🌈

llvm-strings [options] [input...]

πŸ¦‹ DESCRIPTION πŸ¦‹

so. llvm-strings is a tool intended as a drop-in replacement for GNU's strings. it goes looking for printable strings in files and writes them straight to the standard output stream. no cap.

and what even is a printable string, you ask? bestie. it's any sequence of four (by default) or more printable ASCII characters. that's it. the end of the file, or any other byte, terminates the current sequence. any other byte. one wrong byte and the vibe check fails and the string is over. πŸ’€

llvm-strings looks for strings in each input file specified. but here's the plot twist β€” 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. she does not care about your section boundaries. she reads the whole thing. obsessed.

and if - is specified as an input, or no input is specified at all, the program reads from the standard input stream. yes queen, stdin representation. 🫢


🌸 EXAMPLE 🌸

$ cat input.txt
bars
foo
wibble blob
$ llvm-strings input.txt
bars
wibble blob

see how foo didn't make it? that's because it's only three characters and the default minimum is four. foo got left on read. 😭 the other two ate and left no crumbs.


πŸ’… OPTIONS πŸ’…

  • --all, -a β€” Silently ignored. Present for GNU strings compatibility. literally just sitting there looking pretty, contributing nothing, and honestly? iconic. she's a decoration.
  • --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. so if you want shorter strings, lower it; if you want only the beefy ones, crank it up. your call, bestie.
  • --help, -h β€” Display a summary of command line options. when in doubt, ask for help. no shame in it.
  • --print-file-name, -f β€” Display the name of the containing file before each string. so when you throw a whole squad of files at her, you actually know which one each string came from. chef's kiss.

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 are o, d and x for octal, decimal and hexadecimal respectively. so you get the where along with the what. receipts. 🧾

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 the llvm-strings executable. know your queen's era. πŸ‘‘
  • @<FILE> β€” Read command-line options from response file <FILE>. yes, you can put your options in a file and just point at it. delegation. we love to see it.

⭐ EXIT STATUS ⭐

llvm-strings exits with a non-zero exit code if there is an error. otherwise, it exits with code 0. so like, 0 = we're so back, non-zero = it's over. check your $? bestie, she will tell you everything.


πŸ’€ BUGS πŸ’€

To report bugs, please visit <https://github.com/llvm/llvm-project/labels/tools:llvm-strings/>.

(ngl if you found a bug, go tell them. they wanna know. constructive feedback is self care. πŸŽ€)


πŸ‘‘ AUTHOR πŸ‘‘

Maintained by the LLVM Team (https://llvm.org/). absolute legends, fr fr.


2003-2025, LLVM Project


heads up bestie: every flag, every default, every number and every path up there is exactly as written β€” don't let the vibes fool you into thinking we changed a single character of the actual behavior. πŸ’–

and that's the whole page!! this was LLVM-STRINGS(1), from the LLVM crew, page 20, dated 2025-09-03. mwah. go find some strings. you're gonna slay. πŸ’…βœ¨πŸ¦‹

πŸ“¦ where this page comes from