FIND-ALL-SYMBOLS(1)

πŸ“¦
version 14.0.6 Β· 5 versions
, in ubuntu questing

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

okay bestie, welcome to FIND-ALL-SYMBOLS(1) β€” yes that's the manual name, it's giving very "I live in a terminal and I'm thriving". This is the user-commands girlie, section 1, and she's about to tell you everything about find-all-symbols version 14. no gatekeeping here 🫢


✨ NAME ✨

find-all-symbols β€” it's literally the manual page for find-all-symbols version 14. that's the whole name section, short and iconic πŸ’…


🌸 DESCRIPTION 🌸

okay so here's the vibe, and I'm putting it in a little box so you can screenshot it:

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

and then, the moment you've all been waiting for:

OPTIONS:


πŸŽ€ Generic Options πŸŽ€

these are the universal besties, the ones that show up everywhere:

  • --help β€” shows you the available options. and if you want the secret menu, pass --help-hidden for more. πŸ™ˆ
  • --help-list β€” shows you the list of available options. and again, --help-list-hidden for more, because there's always more, there's always lore. πŸ‘‘
  • --version β€” displays the version of this program. yes, the whole point of this page, slay. ⭐

πŸ¦‹ find_all_symbols options πŸ¦‹

okay now the main character options, the ones specific to this tool, let's gooo:

  • --extra-arg=<string> β€” an additional argument to append to the compiler command line. appended, bestie, so it goes at the end. πŸ”₯
  • --extra-arg-before=<string> β€” an additional argument to prepend to the compiler command line. prepended! so it goes at the front. order matters, iykyk. ✨
  • --merge-dir=<string> β€” the directory for merging symbols.
  • --output-dir=<string> β€” the output directory for saving the results. πŸŽ€
  • -p=<string> β€” build path.

πŸ’œ about that build path πŸ’œ

so -p <build-path> is used to read a compile command database. no cap, that's what it does.

for example, it can be a CMake build directory in which a file named compile_commands.json exists β€” and to get that output you use the -DCMAKE_EXPORT_COMPILE_COMMANDS=ON CMake option. 🌈

when no build path is specified, a search for compile_commands.json will be attempted through all parent paths of the first input file. it goes looking, it's very determined. 🧚

see: https://clang.llvm.org/docs/HowToSetupToolingForLLVM.html for an example of setting up Clang Tooling on a source tree. πŸ’…


πŸ“ about those source files πŸ“

<source0> ... β€” you specify the paths of source files. these paths are looked up in the compile command database. here's the tea, and it's a lot of tea, so read carefully:

  • if the path of a file is absolute, it needs to point into CMake's source tree.
  • if the path is relative, 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 will be automatically removed, but the rest of a relative path must be a suffix of a path in the compile command database.

like, the rules are the rules, and the rules are strict. 🫢


More help text...

(yes that's literally all it says there. they left us on read. 😭)


and that's the whole page, bestie!! no crumbs left, every option accounted for, nothing skipped, we ate and left no plate 🍽️✨

this was find-all-symbols version 14, from May 2025, and the manual page is FIND-ALL-SYMBOLS(1). mwah, go compile something gorgeous πŸ’–πŸ’…πŸŒˆ

πŸ“¦ where this page comes from