LLVM-STRINGS(1)

✨ NAME ✨

okay so bestie, LLVM-STRINGS(1) is the manual page for llvm-strings, and it lives in the LLVM manual set. it’s literally a tool that prints strings β€” designed as a drop-in replacement for GNU’s strings β€” and it looks for printable strings in files and writes them to the standard output stream. πŸ’–


🌸 SYNOPSIS 🌸

llvm-strings [options] [input…]

πŸ¦‹ DESCRIPTION πŸ¦‹

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. no cap.

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

πŸ‘‘ OPTIONS πŸ‘‘

  • --all, -a β€” silently ignored. Present for GNU strings compatibility. it’s giving β€œI’m just here so I don’t get fined” energy. πŸ’…
  • --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.
  • --help, -h β€” display a summary of command line options.
  • --print-file-name, -f β€” display the name of the containing file before each string.

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.

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.
  • @<FILE> β€” read command-line options from response file <FILE>.

πŸ’€ EXIT STATUS πŸ’€

llvm-strings exits with a non-zero exit code if there is an error. Otherwise, it exits with code 0. so a clean run is literally 0, and an error is non-zero β€” periodt. ✨

πŸ› BUGS πŸ›

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

🌈 AUTHOR 🌈

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

2003-2023, LLVM Project


okay bye bestie πŸ’– this was LLVM-STRINGS(1) from the LLVM manual set β€” the footer source/version line says 15, dated 2023-07-14. now go find some strings and slay. πŸŽ€βœ¨

πŸ“¦ where this page comes from