FIND-ALL-SYMBOLS(1)
π find-all-symbols β the vibe check π
okay bestie, so this is the manual for find-all-symbols, and it's from the 18 era of the tool. it lives in the User Commands section of the manual (that's the (1) bit, iykyk), and honestly? it's giving "small tool, big responsibilities." π«Ά
β¨ NAME β¨
find-all-symbols β this is literally its manual page, for find-all-symbols version 18. that's it, that's the name section, we keep it simple around here. π
πΈ DESCRIPTION πΈ
okay so here's the whole entire usage line, no cap:
USAGE: find-all-symbols [options] <source0> [... <sourceN>]
you give it some options, then you give it some source files, and it does its little symbol thing. main character energy fr fr. π
then it goes:
OPTIONS:
and here's where it gets juicy, because there are two whole families of options: the generic ones and the find_all_symbols ones. buckle up. π¦
π Generic Options π
these are the universal, everyone-gets-them options. the little black dress of CLI flags. β¨
--helpβ shows you all the available options. and if you pass--help-hidden, you get even more options, the secret menu ones. π€«--help-listβ prints out the list of available options as a list. same deal:--help-list-hiddenreveals the hidden ones too. π--versionβ tells you what version of this program you're running. iconic behaviour honestly.
π§ find_all_symbols options π§
these are the ones that are specifically this tool's whole personality. π
--extra-arg=<string>β an additional argument that gets appended to the compiler command line. extra lil garnish at the end. π--extra-arg-before=<string>β an additional argument that gets prepended to the compiler command line. same garnish, but it goes first, because it has main character energy. π--merge-dir=<string>β the directory for merging symbols. that's where the merging happens, bestie. π--output-dir=<string>β the output directory for saving the results. this is where the receipts go. π-p <string>β build path. simple. clean. a classic.
π¦ about that -p <build-path> π¦
so like, -p <build-path> is what you use to read a compile command database. π
for example, it can be a CMake build directory that has a file named compile_commands.json chilling inside it β and to get that output you use the -DCMAKE_EXPORT_COMPILE_COMMANDS=ON CMake option. that's the move. β¨
and when you don't specify a build path? it goes looking for compile_commands.json by attempting a search through all parent paths of the first input file. it's a whole quest. π§
if you want an actual example of setting up Clang Tooling on a source tree, the page points you here:
https://clang.llvm.org/docs/HowToSetupToolingForLLVM.html
πΈ about <source0> and friends πΈ
<source0> ... and the rest of them specify the paths of source files. these paths get looked up in the compile command database. here's the tea, and it matters so listen up:
- if the path of a file is absolute, it needs to point into CMake's source tree. no detours. π«
- 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. both conditions, bestie, it's not a choose-your-own-adventure. π
- any
"./"prefixes in the relative files get automatically removed for you. cute of it honestly. π - but the rest of a relative path must be a suffix of a path in the compile command database. that part is non-negotiable. β
and then the page just says:
More help text...
yep. that's literally it. it trails off. it said what it said and left. π
lowkey important: this page doesn't hand you extra warnings or tips beyond what's written above, so don't go inventing behaviour β everything you get is right here. π
okay that's the whole page, bestie, you ate it. π this was find-all-symbols 18, and it's dated June 2025, and yes it's from the FIND-ALL-SYMBOLS(1) corner of the manual universe. go find some symbols. slay. πβ¨
π¦ where this page comes from
- debian trixie: clang-tools-18 1:18.1.8-18+b1 Β· APACHE-2-LLVM-EXCEPTIONS
- ubuntu questing: clang-tools-18 1:18.1.8-18ubuntu2
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms