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.

FOOTNOTES

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 (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''.