C++FILT 1 2005-04-20 binutils-2.15.97 GNU Development Tools
NAME
cxxfilt - Demangle C++ and Java symbols.
SYNOPSIS
c++filt [--__|----ssttrriipp--uunnddeerrssccoorreess]
[--jj|----jjaavvaa]
[--nn|----nnoo--ssttrriipp--uunnddeerrssccoorreess]
[--pp|----nnoo--ppaarraammss]
[--ss _f_o_r_m_a_t|----ffoorrmmaatt==_f_o_r_m_a_t]
[----hheellpp] [----vveerrssiioonn] [_s_y_m_b_o_l...]
DESCRIPTION
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
_m_a_n_g_l_i_n_g). The cc++++ffiilltt
[1]
program does the inverse mapping: it decodes (_d_e_m_a_n_g_l_e_s) 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 cc++++ffiilltt to decipher individual symbols:
c++filt
If no _s_y_m_b_o_l arguments are given, cc++++ffiilltt 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
-
--__
-
-
----ssttrriipp--uunnddeerrssccoorreess
On some systems, both the C and C++ compilers put an underscore in front
-
of every name. For example, the C name "foo" gets the low-level
name "_foo". This option removes the initial underscore. Whether
cc++++ffiilltt removes the underscore by default is target dependent.
-
--jj
-
-
----jjaavvaa
Prints demangled names using Java syntax. The default is to use C++
-
syntax.
-
--nn
-
-
----nnoo--ssttrriipp--uunnddeerrssccoorreess
Do not remove the initial underscore.
-
-
--pp
-
-
----nnoo--ppaarraammss
When demangling the name of a function, do not display the types of
-
the function's parameters.
-
--ss _f_o_r_m_a_t
-
-
----ffoorrmmaatt==_f_o_r_m_a_t
cc++++ffiilltt can decode various methods of mangling, used by
-
different compilers. The argument to this option selects which
method it uses:
-
"auto"
Automatic selection based on executable (the default method)
-
-
"gnu"
the one used by the GNU C++ compiler (g++)
-
-
"lucid"
the one used by the Lucid compiler (lcc)
-
-
"arm"
the one specified by the C++ Annotated Reference Manual
-
-
"hp"
the one used by the HP compiler (aCC)
-
-
"edg"
the one used by the EDG compiler
-
-
"gnu-v3"
the one used by the GNU C++ compiler (g++) with the V3 ABI.
-
-
"java"
the one used by the GNU Java compiler (gcj)
-
-
"gnat"
the one used by the GNU Ada compiler (GNAT).
-
-
----hheellpp
Print a summary of the options to cc++++ffiilltt and exit.
-
-
----vveerrssiioonn
Print the version number of cc++++ffiilltt and exit.
-
-
1.
MS-DOS does not allow "+" characters in file names, so on
-
MS-DOS this program is named CCXXXXFFIILLTT.
SEE ALSO
the Info entries for _b_i_n_u_t_i_l_s.
COPYRIGHT
Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
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 ``GNU Free Documentation License''.