FIND-ALL-SYMBOLS(1)
π 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-hiddenfor even more π--help-listβ gives you a straight-up list of the available options. and again,--help-list-hiddenexists 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
- debian trixie: clang-tools-17 1:17.0.6-22+b2 Β· APACHE-2-LLVM-EXCEPTIONS
- ubuntu questing: clang-tools-17 1:17.0.6-22build1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms