LLVM-CXXFILT(1)
π llvm-cxxfilt β the LLVM symbol name demangler, bestie edition
okay so real talk: this is llvm-cxxfilt from the LLVM fam, and it's literally the glow-up your mangled C++ symbols have been waiting for. It takes all that cursed _Z3foov nonsense and turns it into something your eyeballs can actually process. Periodt. β¨
β¨ SYNOPSIS β¨
llvm-cxxfilt [options] [mangled namesβ¦]
that's it. that's the whole vibe. π
πΈ DESCRIPTION πΈ
so llvm-cxxfilt is a symbol demangler, and yes she can absolutely be used as a replacement for the GNU c++filt tool β same energy, new icon. π
You hand her a series of symbol names, and she prints their demangled form on the standard output stream. And if a name can't be demangled? She doesn't panic, she doesn't throw a fit, she just prints it as is. lowkey iconic behavior tbh. π¦
Not passing any names on the command line? No problem bestie β she'll read them interactively from the standard input stream instead. And here's the cute little detail: when she's reading names from standard input, each input line gets split on characters that are not part of valid Itanium name manglings β meaning characters that aren't alphanumeric, ., $, or _. And the separators between names? Those get copied to the output as is. she's polite like that π«Ά
π EXAMPLE π
like, watch her work:
$ 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... stayed? she's not gonna force it. respectful queen π and the *** separators survived untouched fr fr
π OPTIONS π
--format=<value>,-sβ which mangling scheme to assume. valid values areauto(that's the default β she auto-detects the style, detective mode π) andgnu(assume GNU/Itanium style).--help,-hβ print a summary of command line options. your little cheat sheet π--no-strip-underscore,-nβ do not strip a leading underscore. this is the default for all platforms except Mach-O based hosts.--strip-underscore,-_β strip a single leading underscore, if present, from each input name before demangling. on by default on Mach-O based platforms. (yes the flag is literally-_, she's quirky like that π)--types,-tβ attempt to demangle names as type names as well as function names. she's versatile β¨--versionβ display the version of thellvm-cxxfiltexecutable.@<FILE>β read command-line options from response file<FILE>. peak efficiency behavior π
π₯ EXIT STATUS π₯
llvm-cxxfilt returns 0 unless it encounters a usage error, in which case a non-zero exit code is returned. so if the number's not zero, something went wrong and she's telling you about it π
π§ SEE ALSO π§
llvm-nm(1)β go say hi, they're friends π
β AUTHOR β
Maintained by the LLVM Team (https://llvm.org/). absolute legends, no cap π
π COPYRIGHT π
2003-2023, LLVM Project
and that's the whole page bestie!! brought to you by LLVM, dated 2023-07-14, page LLVM-CXXFILT(1) β go demangle something gorgeous, you got this π«Άβ¨π
π¦ where this page comes from
- ubuntu jammy: llvm-15 1:15.0.7-0ubuntu0.22.04.3 Β· APACHE-2-LLVM-EXCEPTIONS
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms