LLVM-STRINGS(1)

πŸ“¦
version 12.0.1 Β· 4 versions
, in fedora 43, fedora 44

πŸ’– LLVM-STRINGS πŸ’– (that's the manual page, bestie β€” section 1, LLVM fam)


✨ NAME ✨

llvm-strings β€” print strings, that's it, that's the whole vibe πŸŽ€


🌸 SYNOPSIS 🌸

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

πŸ¦‹ DESCRIPTION πŸ¦‹

okay so llvm-strings is a tool that's meant to be 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. And what even is a printable string, you ask? It's literally any sequence of four (by default, anyway) or more printable ASCII characters. The end of the file terminates the current sequence β€” and ngl, so does any other byte. Random byte shows up? Sequence over. πŸ’€

llvm-strings hunts for strings in every input file you specify. But here's the tea: unlike GNU strings, it looks in the entire input file, no matter what the file format is β€” it does not restrict the search to certain sections of object files. Full send, no gatekeeping. πŸ‘‘

If you pass "-" as an input, or you pass no input at all, the program reads from the standard input stream. Slay. 🫢


πŸ“ EXAMPLE πŸ“

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

πŸ’… OPTIONS πŸ’…

  • --all, -a β€” Silently ignored, bestie. It's just there for GNU strings compatibility. It's giving decorative. πŸŽ€
  • --bytes=<length>, -n β€” Sets the minimum number of printable ASCII characters a sequence of bytes needs before it counts as a string. Default value is 4. ✨
  • --help, -h β€” Displays a summary of the command line options.
  • --help-list β€” Displays an uncategorized summary of the command line options. (Yes, there's a difference. Iconic behaviour.)
  • --print-file-name, -f β€” Displays the name of the containing file before each string. Look at her go:
$ 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 β€” Displays the offset within the file of each string, before the string, using the radix you picked. Valid <radix> values are o, d and x β€” that's octal, decimal and hexadecimal respectively. no cap 🧚

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 β€” Displays the version of the llvm-strings executable. Main character energy, honestly. ⭐
  • @<FILE> β€” Reads command-line options from the response file <FILE>. πŸ¦‹

πŸ”₯ EXIT STATUS πŸ”₯

llvm-strings exits with a non-zero exit code if there's an error. Otherwise? It exits with code 0. Clean, no drama. 😌


πŸ’€ BUGS πŸ’€

To report bugs, please visit <https://bugs.llvm.org/>. (Go off, tell them everything. πŸ™ˆ)


πŸ‘‘ AUTHOR πŸ‘‘

Maintained by the LLVM Team (https://llvm.org/).


2003-2024, LLVM Project


and that's the whole page, bestie πŸ’œ this one's from LLVM, dated 2024-07-18, page 12 β€” go forth and find ur strings fr fr 🌸✨

πŸ“¦ where this page comes from