LLVM-CXXFILT(1)
LLVM-CXXFILT(1) π β¨ β the demangler bestie era
Okay so bestie, gather round, because this page is all about llvm-cxxfilt β the LLVM symbol name demangler that's giving main character energy in the demangling department. If you've ever stared at a C++ symbol like _Z3foov and thought "what even is that π", this tool is about to be your new obsession. β¨
π NAME π
llvm-cxxfilt β LLVM symbol name demangler. That's it, that's the whole vibe. It takes the cursed mangled names and makes them make sense. Iconic behavior, no cap. π
π SYNOPSIS π
llvm-cxxfilt [options] [mangled namesβ¦]
Short, sweet, and ready to serve. π«Ά
π¦ DESCRIPTION π¦
So here's the tea: llvm-cxxfilt is a symbol demangler that can be used as a replacement for the GNU c++filt tool. It takes a series of symbol names and prints their demangled form on the standard output stream. Slay. π And if a name cannot be demangled? It is simply printed as is. No drama, no error, just vibes. β¨
If no names are specified on the command-line, names are read interactively from the standard input stream. That's right, bestie β it's a whole interactive moment. π When reading names from standard input, each input line is split on characters that are not part of valid Itanium name manglings, i.e. characters that are not alphanumeric, ., $, or _. And the separators between names? Copied to the output as is. Respectful, preserved, periodt. π₯
πΈ EXAMPLE πΈ
Like, just look at this and tell me it's not iconic:
$ 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 |
The way that it just works ππ not_mangled stays exactly as it was, because it already understood the assignment. No notes. π
β¨ OPTIONS β¨
--format=<value>,-sβ Mangling scheme to assume. Valid values areauto(default, auto-detect the style) andgnu(assume GNU/Itanium style). Choose your fighter. π--help,-hβ Print a summary of command line options. When you need a little recap, bestie. π--no-strip-underscore,-nβ Do not strip a leading underscore. This is the default for all platforms except Mach-O based hosts. FYI, iykyk. π¦--strip-underscore,-_β Strip a single leading underscore, if present, from each input name before demangling. On by default on Mach-O based platforms. Lowkey important. β¨--types,-tβ Attempt to demangle names as type names as well as function names. Because types deserve love too. π--versionβ Display the version of thellvm-cxxfiltexecutable. Gotta know which era of slay you're running. π@<FILE>β Read command-line options from response file<FILE>. A whole file of options? The convenience is real. π«Ά
π EXIT STATUS π
llvm-cxxfilt returns 0 unless it encounters a usage error, in which case a non-zero exit code is returned. So if you see a non-zero, something went wrong β but like, respectfully. π
π SEE ALSO π
llvm-nm(1)β the other tool in the LLVM cinematic universe. Go check it out. π
π AUTHOR π
Maintained by the LLVM Team (https://llvm.org/). Legends, honestly. π
β COPYRIGHT β
2003-2023, LLVM Project. Respect the legacy. π
And that's the whole page, bestie! This iconic manual was brought to you by the LLVM Project, version 13, dated 2023-07-14. Now go demangle something and feel powerful. πβ¨π¦πΈπ π«Άππ₯ππβππππ§π
π¦ where this page comes from
- ubuntu jammy: llvm-13 1:13.0.1-2ubuntu2.2 Β· 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