Home

demangler

A demangler is a software component or utility that converts mangled symbol names produced by compilers back into human-readable form. Name mangling is used in many programming languages to encode information such as namespaces, classes, function overloading, templates, and other type information into a symbol so that the linker can distinguish between overloads and different scopes.

Demangling works by parsing the mangled string according to the language’s or ABI’s specification and reconstructing

In practice, demangling is widely used in debugging and profiling. Debuggers like GDB and LLDB display demangled

Limitations exist: a demangler can fail on corrupted or non-standard names, and some information encoded in

---

a
readable
signature.
Different
languages
and
toolchains
define
different
mangling
schemes,
so
demanglers
are
typically
language-
and
ABI-specific.
Common
examples
include
the
Itanium
C++
ABI
demangler
(often
accessed
via
the
c++filt
tool),
MSVC’s
demangling
used
by
various
Windows
tools,
and
language-specific
demanglers
such
as
rust-demangle
for
Rust,
swift-demangle
for
Swift,
and
D
language
demanglers.
names
in
stack
traces,
crash
reports,
and
symbolication
of
core
dumps.
Build
systems
and
IDEs
may
present
readable
symbols
to
developers,
and
performance
profilers
can
show
human-friendly
function
names.
the
mangled
form
may
be
lossy
or
not
fully
recoverable
in
a
human-friendly
way.
Nevertheless,
demangling
remains
a
key
tool
for
interpreting
compiler-generated
symbols
and
understanding
program
behavior.