FIND-ALL-SYMBOLS(1)

πŸ“¦
version 17.0.6 Β· 4 versions
, in debian trixie, ubuntu questing

πŸ’– FIND-ALL-SYMBOLS πŸ’–

okay bestie, welcome to find-all-symbols, a User Commands manual-page situation, version 17 β€” and yes she's that girl. πŸ’…


✨ NAME ✨

find-all-symbols β€” literally the manual page for find-all-symbols 17. that's it, that's the name. πŸŽ€


🌸 DESCRIPTION 🌸

so here's the whole vibe, starting with how you actually run it:

USAGE: find-all-symbols [options] <source0> [... <sourceN>]

then we get into OPTIONS, and bestie there are categories, we love a categorized queen πŸ‘‘

🫢 Generic Options

these are the universal besties, they work everywhere:

  • --help β€” shows you all the available options. and if you're feeling extra there's --help-hidden for even more πŸ‘€
  • --help-list β€” gives you a straight-up list of the available options. and again, --help-list-hidden exists if you want the hidden ones too πŸ™ˆ
  • --version β€” tells you what version of this program you're running. no cap. ⭐

🧚 find_all_symbols options

okay now the main-character options, specifically for find_all_symbols:

  • --extra-arg=<string> β€” an extra argument to append to the compiler command line πŸ“
  • --extra-arg-before=<string> β€” an extra argument to prepend to the compiler command line (yes, before, that's the whole point, that's the difference, don't mix them up bestie 😭)
  • --merge-dir=<string> β€” the directory for merging symbols ✨
  • --output-dir=<string> β€” the output directory where the results get saved πŸ’Ύ
  • -p <string> β€” Build path πŸ”₯

🌈 about that build path

so -p <build-path> is what you use to read a compile command database. iconic behavior honestly.

for example, it can be a CMake build directory that has a file named compile_commands.json inside it β€” and to get that output you use the -DCMAKE_EXPORT_COMPILE_COMMANDS=ON CMake option. periodt. πŸ’…

and when you don't specify a build path at all? she goes looking for compile_commands.json herself, attempting a search through all the parent paths of the first input file πŸ•΅οΈβ€β™€οΈ

if you want a whole example of setting up Clang Tooling on a source tree, the docs point you here: https://clang.llvm.org/docs/HowToSetupToolingForLLVM.html

πŸ¦‹ about the source files

<source0> ... β€” this is where you specify the paths of your source files.

here's the tea on how those paths get handled, because the rules are specific:

  • these paths are looked up in the compile command database πŸ”
  • if the path of a file is absolute, it needs to point into CMake's source tree
  • if the path is relative, then the current working directory needs to be in the CMake source tree, and the file must be in a subdirectory of the current working directory
  • "./" prefixes in the relative files get automatically removed β€” the universe handles that for you, no stress 🌸
  • but the rest of a relative path must be a suffix of a path in the compile command database. non-negotiable, that's the rule πŸŽ€

More help text... πŸ‘‘


and that's the whole page bestie, you ate that πŸ’–βœ¨

signing off with the official receipts: this was find-all-symbols 17, dated June 2025, and that's the source + version + date all wrapped up in a little bow πŸŽ€πŸ«Ά no cap, go read your compile command database, mwah πŸ’…

πŸ“¦ where this page comes from