LLVM-CXXFILT(1)

πŸ“¦
version 16.0.6 Β· 3 versions
, in ubuntu noble

✨ LLVM-CXXFILT(1) ✨

okay bestie, so this is the LLVM manual page for llvm-cxxfilt and I'm about to make demangling symbols sound as cute as it actually is πŸ’–


🌸 NAME 🌸

llvm-cxxfilt β€” the LLVM symbol name demangler πŸ’…


πŸ¦‹ SYNOPSIS πŸ¦‹

llvm-cxxfilt [options] [mangled names…]

πŸ’œ DESCRIPTION πŸ’œ

So llvm-cxxfilt is a symbol demangler, right? It's literally built to be a drop-in replacement for the GNU c++filt tool 🫢 It takes a bunch of symbol names and prints their demangled form on the standard output stream. And if a name can't be demangled? No drama, no error, it just gets printed as is. Iconic behaviour honestly.

And if you don't hand it any names on the command-line? Then it just reads them interactively from the standard input stream. But here's the detail you need to know, bestie: when it's reading from standard input, each input line gets split on characters that are not part of valid Itanium name manglings. Like, characters that aren't alphanumeric, '.', '$', or '_'. And the separators between names? Those get copied to the output as is. Preserved. Untouched. Periodt ✨


πŸŽ€ EXAMPLE πŸŽ€

$ llvm-cxxfilt _Z3foov _Z3bari not_mangled
foo()
bar(int)
not_mangled
$ cat input.txt
| _Z3foov *** _Z3bari *** not_mangled |
$ llvm-cxxfilt < input.txt
| foo() *** bar(int) *** not_mangled |

see how not_mangled just... stays not_mangled? she's unbothered πŸ’€ and the *** separators survived the whole trip, as promised.


✨ OPTIONS ✨

  • --format=<value>, -s β€” which mangling scheme to assume. Valid values are auto (that's the default, it auto-detects the style) and gnu (assume the GNU/Itanium style).
  • --help, -h β€” prints a summary of the command line options. cute of her.
  • --no-strip-underscore, -n β€” do not strip a leading underscore. This is the default for all platforms except Mach-O based hosts.
  • --strip-underscore, -_ β€” strips a single leading underscore, if there is one, from each input name before demangling. This is on by default on Mach-O based platforms.
  • --types, -t β€” attempts to demangle names as type names as well as function names. multitasking queen πŸ‘‘
  • --version β€” displays the version of the llvm-cxxfilt executable.
  • @<FILE> β€” read command-line options from the response file <FILE>.

πŸ”₯ EXIT STATUS πŸ”₯

llvm-cxxfilt returns 0 unless it encounters a usage error β€” and in that case, a non-zero exit code gets returned. so basically, zero means we're good πŸ’š


🌈 SEE ALSO 🌈


πŸ‘‘ AUTHOR πŸ‘‘

Maintained by the LLVM Team (https://llvm.org/). legends, fr fr.


2003-2024, LLVM Project


and that's the whole vibe check, bestie 🧚 this was the LLVM 15 release of the page, dated 2024-04-14, and you can find it chilling in the LLVM manual section. go demangle something gorgeous πŸ’…βœ¨

πŸ“¦ where this page comes from