C++FILT(1)            GNU Development Tools            C++FILT(1)



NAME
       cxxfilt - Demangle C++ and Java symbols.

SYNOPSIS
       c++filt [-_|--strip-underscores]
               [-j|--java]
               [-n|--no-strip-underscores]
               [-p|--no-params]
               [-s format|--format=format]
               [--help]  [--version]  [symbol...]

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 man-
       gling). 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  func-
       tions 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  "foo"  gets  the  low-level  name  "_foo".  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.

       -p
       --no-params
           When demangling the name of a function, do not display
           the types of the function's parameters.

       -s format
       --format=format
           c++filt 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).

       --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 "+" characters in file names, so
           on MS-DOS this program is named cxxfilt.

SEE ALSO
       the Info entries for binutils.

COPYRIGHT
       Copyright (c) 1991, 92, 93, 94, 95, 96, 97, 98, 99,  2000,
       2001, 2002, 2003 Free Software Foundation, Inc.

       Permission  is  granted  to copy, distribute and/or modify
       this document under the terms of the GNU  Free  Documenta-
       tion  License,  Version 1.1 or any later version published
       by the Free Software Foundation; with  no  Invariant  Sec-
       tions,  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''.



binutils-2.14.91            2004-04-09                 C++FILT(1)
