]> CyberLeo.Net >> Repos - FreeBSD/releng/8.1.git/blob - contrib/binutils/binutils/doc/cxxfilt.man
Copy stable/8 to releng/8.1 in preparation for 8.1-RC1.
[FreeBSD/releng/8.1.git] / contrib / binutils / binutils / doc / cxxfilt.man
1 .\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14
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 .fi
25 ..
26 .\" Set up some character translations and predefined strings.  \*(-- will
27 .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
28 .\" double quote, and \*(R" will give a right double quote.  | will give a
29 .\" real vertical bar.  \*(C+ will give a nicer C++.  Capital omega is used to
30 .\" do unbreakable dashes and therefore won't be available.  \*(C` and \*(C'
31 .\" expand to `' in nroff, nothing in troff, for use with C<>.
32 .tr \(*W-|\(bv\*(Tr
33 .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
34 .ie n \{\
35 .    ds -- \(*W-
36 .    ds PI pi
37 .    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
38 .    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
39 .    ds L" ""
40 .    ds R" ""
41 .    ds C` ""
42 .    ds C' ""
43 'br\}
44 .el\{\
45 .    ds -- \|\(em\|
46 .    ds PI \(*p
47 .    ds L" ``
48 .    ds R" ''
49 'br\}
50 .\"
51 .\" If the F register is turned on, we'll generate index entries on stderr for
52 .\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
53 .\" entries marked with X<> in POD.  Of course, you'll have to process the
54 .\" output yourself in some meaningful fashion.
55 .if \nF \{\
56 .    de IX
57 .    tm Index:\\$1\t\\n%\t"\\$2"
58 ..
59 .    nr % 0
60 .    rr F
61 .\}
62 .\"
63 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
64 .\" way too many mistakes in technical documents.
65 .hy 0
66 .\"
67 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
68 .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
69 .    \" fudge factors for nroff and troff
70 .if n \{\
71 .    ds #H 0
72 .    ds #V .8m
73 .    ds #F .3m
74 .    ds #[ \f1
75 .    ds #] \fP
76 .\}
77 .if t \{\
78 .    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
79 .    ds #V .6m
80 .    ds #F 0
81 .    ds #[ \&
82 .    ds #] \&
83 .\}
84 .    \" simple accents for nroff and troff
85 .if n \{\
86 .    ds ' \&
87 .    ds ` \&
88 .    ds ^ \&
89 .    ds , \&
90 .    ds ~ ~
91 .    ds /
92 .\}
93 .if t \{\
94 .    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
95 .    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
96 .    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
97 .    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
98 .    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
99 .    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
100 .\}
101 .    \" troff and (daisy-wheel) nroff accents
102 .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
103 .ds 8 \h'\*(#H'\(*b\h'-\*(#H'
104 .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
105 .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
106 .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
107 .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
108 .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
109 .ds ae a\h'-(\w'a'u*4/10)'e
110 .ds Ae A\h'-(\w'A'u*4/10)'E
111 .    \" corrections for vroff
112 .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
113 .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
114 .    \" for low resolution devices (crt and lpr)
115 .if \n(.H>23 .if \n(.V>19 \
116 \{\
117 .    ds : e
118 .    ds 8 ss
119 .    ds o a
120 .    ds d- d\h'-1'\(ga
121 .    ds D- D\h'-1'\(hy
122 .    ds th \o'bp'
123 .    ds Th \o'LP'
124 .    ds ae ae
125 .    ds Ae AE
126 .\}
127 .rm #[ #] #H #V #F C
128 .\" ========================================================================
129 .\"
130 .IX Title "C++FILT 1"
131 .TH C++FILT 1 "2004-04-09" "binutils-2.14.91" "GNU Development Tools"
132 .SH "NAME"
133 cxxfilt \- Demangle C++ and Java symbols.
134 .SH "SYNOPSIS"
135 .IX Header "SYNOPSIS"
136 c++filt [\fB\-_\fR|\fB\-\-strip\-underscores\fR]
137         [\fB\-j\fR|\fB\-\-java\fR]
138         [\fB\-n\fR|\fB\-\-no\-strip\-underscores\fR]
139         [\fB\-p\fR|\fB\-\-no\-params\fR]
140         [\fB\-s\fR \fIformat\fR|\fB\-\-format=\fR\fIformat\fR]
141         [\fB\-\-help\fR]  [\fB\-\-version\fR]  [\fIsymbol\fR...]
142 .SH "DESCRIPTION"
143 .IX Header "DESCRIPTION"
144 The \*(C+ and Java languages provides function overloading, which means
145 that you can write many functions with the same name (providing each
146 takes parameters of different types).  All \*(C+ and Java function names
147 are encoded into a low-level assembly label (this process is known as
148 \&\fImangling\fR). The \fBc++filt\fR
149 [1]
150 program does the inverse mapping: it decodes (\fIdemangles\fR) low-level
151 names into user-level names so that the linker can keep these overloaded
152 functions from clashing.
153 .PP
154 Every alphanumeric word (consisting of letters, digits, underscores,
155 dollars, or periods) seen in the input is a potential label.  If the
156 label decodes into a \*(C+ name, the \*(C+ name replaces the low-level
157 name in the output.
158 .PP
159 You can use \fBc++filt\fR to decipher individual symbols:
160 .PP
161 .Vb 1
162 \&        c++filt <symbol>
163 .Ve
164 .PP
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\-p\fR" 4
196 .IX Item "-p"
197 .PD 0
198 .IP "\fB\-\-no\-params\fR" 4
199 .IX Item "--no-params"
200 .PD
201 When demangling the name of a function, do not display the types of
202 the function's parameters.
203 .IP "\fB\-s\fR \fIformat\fR" 4
204 .IX Item "-s format"
205 .PD 0
206 .IP "\fB\-\-format=\fR\fIformat\fR" 4
207 .IX Item "--format=format"
208 .PD
209 \&\fBc++filt\fR can decode various methods of mangling, used by
210 different compilers.  The argument to this option selects which
211 method it uses:
212 .RS 4
213 .ie n .IP """auto""" 4
214 .el .IP "\f(CWauto\fR" 4
215 .IX Item "auto"
216 Automatic selection based on executable (the default method)
217 .ie n .IP """gnu""" 4
218 .el .IP "\f(CWgnu\fR" 4
219 .IX Item "gnu"
220 the one used by the \s-1GNU\s0 \*(C+ compiler (g++)
221 .ie n .IP """lucid""" 4
222 .el .IP "\f(CWlucid\fR" 4
223 .IX Item "lucid"
224 the one used by the Lucid compiler (lcc)
225 .ie n .IP """arm""" 4
226 .el .IP "\f(CWarm\fR" 4
227 .IX Item "arm"
228 the one specified by the \*(C+ Annotated Reference Manual
229 .ie n .IP """hp""" 4
230 .el .IP "\f(CWhp\fR" 4
231 .IX Item "hp"
232 the one used by the \s-1HP\s0 compiler (aCC)
233 .ie n .IP """edg""" 4
234 .el .IP "\f(CWedg\fR" 4
235 .IX Item "edg"
236 the one used by the \s-1EDG\s0 compiler
237 .ie n .IP """gnu\-v3""" 4
238 .el .IP "\f(CWgnu\-v3\fR" 4
239 .IX Item "gnu-v3"
240 the one used by the \s-1GNU\s0 \*(C+ compiler (g++) with the V3 \s-1ABI\s0.
241 .ie n .IP """java""" 4
242 .el .IP "\f(CWjava\fR" 4
243 .IX Item "java"
244 the one used by the \s-1GNU\s0 Java compiler (gcj)
245 .ie n .IP """gnat""" 4
246 .el .IP "\f(CWgnat\fR" 4
247 .IX Item "gnat"
248 the one used by the \s-1GNU\s0 Ada compiler (\s-1GNAT\s0).
249 .RE
250 .RS 4
251 .RE
252 .IP "\fB\-\-help\fR" 4
253 .IX Item "--help"
254 Print a summary of the options to \fBc++filt\fR and exit.
255 .IP "\fB\-\-version\fR" 4
256 .IX Item "--version"
257 Print the version number of \fBc++filt\fR and exit.
258 .SH "FOOTNOTES"
259 .IX Header "FOOTNOTES"
260 .IP "1." 4
261 MS-DOS does not allow \f(CW\*(C`+\*(C'\fR characters in file names, so on
262 MS-DOS this program is named \fBcxxfilt\fR.
263 .SH "SEE ALSO"
264 .IX Header "SEE ALSO"
265 the Info entries for \fIbinutils\fR.
266 .SH "COPYRIGHT"
267 .IX Header "COPYRIGHT"
268 Copyright (c) 1991, 92, 93, 94, 95, 96, 97, 98, 99, 2000,
269 2001, 2002, 2003 Free Software Foundation, Inc.
270 .PP
271 Permission is granted to copy, distribute and/or modify this document
272 under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.1
273 or any later version published by the Free Software Foundation;
274 with no Invariant Sections, with no Front-Cover Texts, and with no
275 Back-Cover Texts.  A copy of the license is included in the
276 section entitled ``\s-1GNU\s0 Free Documentation License''.