cxxfilt - Demangle C++ and Java symbols.


SYNOPSIS

       c++filt [ -_ | --strip-underscores ]
               [ -j | --java ]      [ -n | --no-strip-underscores
       ]
               [ -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 map­
       ping: 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 I<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'

           Do not remove the initial underscore.

       `-s format'

       `--format=format'
           GNU `nm' can decode three different  methods  of  man­
           gling,  used by different C++ compilers.  The argument
           to this option selects which method it uses:

           `gnu'
               the one used by  the  GNU  compiler  (the  default
               method)

           `lucid'
               the one used by the Lucid compiler

           `arm'
               the  one  specified by the C++ Annotated Reference
               Manual

           `hp'
               the one used by the HP compiler

           `edg'
               the one used by the EDG compiler

           `gnu-new-abi'
               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 `+' 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 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".


Man(1) output converted with man2html