The [C+] and Java languages provides function overloading, which means
that you can write many functions with the same name (providing each
takes parameters of different types). All [C+] and Java function names
are encoded into a low-level assembly label (this process is known as
mangling). The c++filt
[1]
program does the inverse mapping: it decodes (demangles) low-level
names into user-level names so that the linker can keep these overloaded
functions from clashing.
Every alphanumeric word (consisting of letters, digits, underscores,
dollars, or periods) seen in the input is a potential label. If the
label decodes into a [C+] name, the [C+] name replaces the low-level
name in the output.
You can use c++filt to decipher individual symbols:
c++filt <symbol>
If no symbol arguments are given, c++filt reads symbol
names from the standard input and writes the demangled names to the
standard output. All results are printed on the standard output.
OPTIONS
-_
--strip-underscores
On some systems, both the C and [C+] compilers put an underscore in front
of every name. For example, the C name [C`]foo[C'] gets the low-level
name [C`]_foo[C']. This option removes the initial underscore. Whether
c++filt removes the underscore by default is target dependent.
-j
--java
Prints demangled names using Java syntax. The default is to use [C+]
syntax.
-n
--no-strip-underscores
Do not remove the initial underscore.
-sformat
--format=format
GNU nm can decode three different methods of mangling, used by
different [C+] compilers. The argument to this option selects which
method it uses:
the one used by the GNU compiler (the default method)
the one used by the Lucid compiler
the one specified by the [C+] Annotated Reference Manual
the one used by the HP compiler
the one used by the EDG compiler
the one used by the GNU compiler with the new ABI.
--help
Print a summary of the options to c++filt and exit.
--version
Print the version number of c++filt and exit.
FOOTNOTES
1.
MS-DOS does not allow [C`]+[C'] characters in file names, so on
MS-DOS this program is named cxxfilt.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.1
or any later version published by the Free Software Foundation;
with no Invariant Sections, with no Front-Cover Texts, and with no
Back-Cover Texts. A copy of the license is included in the
section entitled [L"]GNU Free Documentation License[R"].
Please take a moment to fill out
this visitor survey You can help support this site by
visiting the advertisers that sponsor it! (only once each, though)