FIND-ALL-SYMBOLS(1)
π NAME π
find-all-symbols β it's the manual page for find-all-symbols 22, bestie, and yes that's the whole vibe π
β¨ DESCRIPTION β¨
Okay so, listen. Here's how you actually run this thing:
USAGE: find-all-symbols [options] <source0> [... <sourceN>]
That's the shape of it: options first, then your source files. Simple. Iconic. Let's get into it π«Ά
π OPTIONS π
Generic Options
These are the "just asking questions" flags, no notes:
--helpβ shows you all the available options. (Pass--help-hiddenif you want even more secrets revealed π)--help-listβ prints out the list of available options. (And--help-list-hiddenfor the extended director's cut π¬)--versionβ tells you which version of this program you're running, periodt.
find_all_symbols options
The actual main-character flags, no cap:
--extra-arg=<string>β an extra argument you want appended to the compiler command line.--extra-arg-before=<string>β an extra argument you want prepended to the compiler command line. (Order matters, okay, that's the whole point of having both π)--merge-dir=<string>β the directory used for merging symbols.--output-dir=<string>β the directory where the results get saved.-p <string>β the build path.
Now, about that -p one, because it's lowkey the most important thing here:
-p <build-path> is what gets used to read a compile command database. That's it. That's the job.
For example, it can totally be a CMake build directory β the kind that has a file named compile_commands.json sitting inside it (you get that output by using the -DCMAKE_EXPORT_COMPILE_COMMANDS=ON CMake option β¨). And when you don't specify a build path at all? It will attempt a search for compile_commands.json through every parent path of the first input file. Go little search algorithm go π¦
If you want an actual example of how to set up Clang Tooling on a source tree, it's here: https://clang.llvm.org/docs/HowToSetupToolingForLLVM.html
No pressure but likeβ¦ setting this up properly is the vibe check. Do it once and you're set π
And now the sources themselves:
<source0> ... β this is where you specify the paths of your source files. These paths get looked up in the compile command database. Rules, because of course there are rules:
- 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 has to be in a subdirectory of the current working directory.
"./"prefixes in relative files get automatically removed β but the rest of a relative path must still be a suffix of a path inside the compile command database.
That's literally it, fr fr.
More help text...
And that's the whole page, bestie π This was find-all-symbols version 22, from September 2026 β stay slay, stay compiled, and may your compile_commands.json always be findable πβπ
π¦ where this page comes from
- ubuntu stonking: clang-tools-22 1:22.1.8-1ubuntu1 Β· APACHE-2-LLVM-EXCEPTIONS
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms