Merge from vendor branch OPENSSH:
[dragonfly.git] / contrib / binutils / binutils / doc / cxxfilt.man
1 .\" Automatically generated by Pod::Man v1.3, Pod::Parser v1.13
2 .\"
3 .\" Standard preamble:
4 .\" ========================================================================
5 .de Sh \" Subsection heading
6 .br
7 .if t .Sp
8 .ne 5
9 .PP
10 \fB\\$1\fR
11 .PP
12 ..
13 .de Sp \" Vertical space (when we can't use .PP)
14 .if t .sp .5v
15 .if n .sp
16 ..
17 .de Vb \" Begin verbatim text
18 .ft CW
19 .nf
20 .ne \\$1
21 ..
22 .de Ve \" End verbatim text
23 .ft R
24
25 .fi
26 ..
27 .\" Set up some character translations and predefined strings.  \*(-- will
28 .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
29 .\" double quote, and \*(R" will give a right double quote.  | will give a
30 .\" real vertical bar.  \*(C+ will give a nicer C++.  Capital omega is used to
31 .\" do unbreakable dashes and therefore won't be available.  \*(C` and \*(C'
32 .\" expand to `' in nroff, nothing in troff, for use with C<>.
33 .tr \(*W-|\(bv\*(Tr
34 .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
35 .ie n \{\
36 .    ds -- \(*W-
37 .    ds PI pi
38 .    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
39 .    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
40 .    ds L" ""
41 .    ds R" ""
42 .    ds C` ""
43 .    ds C' ""
44 'br\}
45 .el\{\
46 .    ds -- \|\(em\|
47 .    ds PI \(*p
48 .    ds L" ``
49 .    ds R" ''
50 'br\}
51 .\"
52 .\" If the F register is turned on, we'll generate index entries on stderr for
53 .\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
54 .\" entries marked with X<> in POD.  Of course, you'll have to process the
55 .\" output yourself in some meaningful fashion.
56 .if \nF \{\
57 .    de IX
58 .    tm Index:\\$1\t\\n%\t"\\$2"
59 ..
60 .    nr % 0
61 .    rr F
62 .\}
63 .\"
64 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
65 .\" way too many mistakes in technical documents.
66 .hy 0
67 .\"
68 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
69 .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
70 .    \" fudge factors for nroff and troff
71 .if n \{\
72 .    ds #H 0
73 .    ds #V .8m
74 .    ds #F .3m
75 .    ds #[ \f1
76 .    ds #] \fP
77 .\}
78 .if t \{\
79 .    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
80 .    ds #V .6m
81 .    ds #F 0
82 .    ds #[ \&
83 .    ds #] \&
84 .\}
85 .    \" simple accents for nroff and troff
86 .if n \{\
87 .    ds ' \&
88 .    ds ` \&
89 .    ds ^ \&
90 .    ds , \&
91 .    ds ~ ~
92 .    ds /
93 .\}
94 .if t \{\
95 .    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
96 .    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
97 .    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
98 .    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
99 .    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
100 .    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
101 .\}
102 .    \" troff and (daisy-wheel) nroff accents
103 .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
104 .ds 8 \h'\*(#H'\(*b\h'-\*(#H'
105 .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
106 .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
107 .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
108 .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
109 .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
110 .ds ae a\h'-(\w'a'u*4/10)'e
111 .ds Ae A\h'-(\w'A'u*4/10)'E
112 .    \" corrections for vroff
113 .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
114 .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
115 .    \" for low resolution devices (crt and lpr)
116 .if \n(.H>23 .if \n(.V>19 \
117 \{\
118 .    ds : e
119 .    ds 8 ss
120 .    ds o a
121 .    ds d- d\h'-1'\(ga
122 .    ds D- D\h'-1'\(hy
123 .    ds th \o'bp'
124 .    ds Th \o'LP'
125 .    ds ae ae
126 .    ds Ae AE
127 .\}
128 .rm #[ #] #H #V #F C
129 .\" ========================================================================
130 .\"
131 .IX Title "C++FILT 1"
132 .TH C++FILT 1 "2002-05-14" "binutils-2.12.1" "GNU Development Tools"
133 .UC
134 .SH "NAME"
135 cxxfilt \- Demangle \*(C+ and Java symbols.
136 .SH "SYNOPSIS"
137 .IX Header "SYNOPSIS"
138 c++filt [\fB\-_\fR|\fB\-\-strip\-underscores\fR]
139         [\fB\-j\fR|\fB\-\-java\fR]
140         [\fB\-n\fR|\fB\-\-no\-strip\-underscores\fR]
141         [\fB\-s\fR \fIformat\fR|\fB\-\-format=\fR\fIformat\fR]
142         [\fB\-\-help\fR]  [\fB\-\-version\fR]  [\fIsymbol\fR...]
143 .SH "DESCRIPTION"
144 .IX Header "DESCRIPTION"
145 The \*(C+ and Java languages provides function overloading, which means
146 that you can write many functions with the same name (providing each
147 takes parameters of different types).  All \*(C+ and Java function names
148 are encoded into a low-level assembly label (this process is known as
149 \&\fImangling\fR). The \fBc++filt\fR
150 [1]
151 program does the inverse mapping: it decodes (\fIdemangles\fR) low-level
152 names into user-level names so that the linker can keep these overloaded
153 functions from clashing.
154 .PP
155 Every alphanumeric word (consisting of letters, digits, underscores,
156 dollars, or periods) seen in the input is a potential label.  If the
157 label decodes into a \*(C+ name, the \*(C+ name replaces the low-level
158 name in the output.
159 .PP
160 You can use \fBc++filt\fR to decipher individual symbols:
161 .PP
162 .Vb 1
163 \&        c++filt I<symbol>
164 .Ve
165 If no \fIsymbol\fR arguments are given, \fBc++filt\fR reads symbol
166 names from the standard input and writes the demangled names to the
167 standard output.  All results are printed on the standard output.
168 .SH "OPTIONS"
169 .IX Header "OPTIONS"
170 .IP "\fB\-_\fR" 4
171 .IX Item "-_"
172 .PD 0
173 .IP "\fB\-\-strip\-underscores\fR" 4
174 .IX Item "--strip-underscores"
175 .PD
176 On some systems, both the C and \*(C+ compilers put an underscore in front
177 of every name.  For example, the C name \f(CW\*(C`foo\*(C'\fR gets the low-level
178 name \f(CW\*(C`_foo\*(C'\fR.  This option removes the initial underscore.  Whether
179 \&\fBc++filt\fR removes the underscore by default is target dependent.
180 .IP "\fB\-j\fR" 4
181 .IX Item "-j"
182 .PD 0
183 .IP "\fB\-\-java\fR" 4
184 .IX Item "--java"
185 .PD
186 Prints demangled names using Java syntax.  The default is to use \*(C+
187 syntax.
188 .IP "\fB\-n\fR" 4
189 .IX Item "-n"
190 .PD 0
191 .IP "\fB\-\-no\-strip\-underscores\fR" 4
192 .IX Item "--no-strip-underscores"
193 .PD
194 Do not remove the initial underscore.
195 .IP "\fB\-s\fR \fIformat\fR" 4
196 .IX Item "-s format"
197 .PD 0
198 .IP "\fB\-\-format=\fR\fIformat\fR" 4
199 .IX Item "--format=format"
200 .PD
201 \&\s-1GNU\s0 \fBnm\fR can decode three different methods of mangling, used by
202 different \*(C+ compilers.  The argument to this option selects which
203 method it uses:
204 .RS 4
205 .ie n .IP """gnu""" 4
206 .el .IP "\f(CWgnu\fR" 4
207 .IX Item "gnu"
208 the one used by the \s-1GNU\s0 compiler (the default method)
209 .ie n .IP """lucid""" 4
210 .el .IP "\f(CWlucid\fR" 4
211 .IX Item "lucid"
212 the one used by the Lucid compiler
213 .ie n .IP """arm""" 4
214 .el .IP "\f(CWarm\fR" 4
215 .IX Item "arm"
216 the one specified by the \*(C+ Annotated Reference Manual
217 .ie n .IP """hp""" 4
218 .el .IP "\f(CWhp\fR" 4
219 .IX Item "hp"
220 the one used by the \s-1HP\s0 compiler
221 .ie n .IP """edg""" 4
222 .el .IP "\f(CWedg\fR" 4
223 .IX Item "edg"
224 the one used by the \s-1EDG\s0 compiler
225 .ie n .IP """gnu\-new\-abi""" 4
226 .el .IP "\f(CWgnu\-new\-abi\fR" 4
227 .IX Item "gnu-new-abi"
228 the one used by the \s-1GNU\s0 compiler with the new \s-1ABI\s0.
229 .RE
230 .RS 4
231 .RE
232 .IP "\fB\-\-help\fR" 4
233 .IX Item "--help"
234 Print a summary of the options to \fBc++filt\fR and exit.
235 .IP "\fB\-\-version\fR" 4
236 .IX Item "--version"
237 Print the version number of \fBc++filt\fR and exit.
238 .SH "FOOTNOTES"
239 .IX Header "FOOTNOTES"
240 .IP "1." 4
241 MS-DOS does not allow \f(CW\*(C`+\*(C'\fR characters in file names, so on
242 MS-DOS this program is named \fBcxxfilt\fR.
243 .SH "SEE ALSO"
244 .IX Header "SEE ALSO"
245 the Info entries for \fIbinutils\fR.
246 .SH "COPYRIGHT"
247 .IX Header "COPYRIGHT"
248 Copyright (c) 1991, 92, 93, 94, 95, 96, 97, 98, 99, 2000, 2001, 2002 Free Software Foundation, Inc.
249 .PP
250 Permission is granted to copy, distribute and/or modify this document
251 under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.1
252 or any later version published by the Free Software Foundation;
253 with no Invariant Sections, with no Front-Cover Texts, and with no
254 Back-Cover Texts.  A copy of the license is included in the
255 section entitled \*(L"\s-1GNU\s0 Free Documentation License\*(R".