2 ''' $RCSfile$$Revision$$Date$
5 ''' Revision 1.3 2001/03/25 20:32:25 nickc
6 ''' Automate generate on man pages
23 .ie \\n(.$>=3 .ne \\$3
39 ''' Set up \*(-- to give an unbreakable dash;
40 ''' string Tr holds user defined translation string.
41 ''' Bell System Logo is used as a dummy character.
47 .if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
48 .if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
51 ''' \*(M", \*(S", \*(N" and \*(T" are the equivalent of
52 ''' \*(L" and \*(R", except that they are used on ".xx" lines,
53 ''' such as .IP and .SH, which do another additional levels of
54 ''' double-quote interpretation
83 .\" If the F register is turned on, we'll generate
84 .\" index entries out stderr for the following things:
89 .\" X<> Xref (embedded
90 .\" Of course, you have to process the output yourself
91 .\" in some meaninful fashion.
94 .tm Index:\\$1\t\\n%\t"\\$2"
99 .TH CXXFILT.MAN 1 "binutils-2.11.90" "23/Mar/101" "GNU"
102 .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
103 .de CQ \" put $1 in typewriter font
109 \\&\\$2 \\$3 \\$4 \\$5 \\$6 \\$7
112 .\" @(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2
113 . \" AM - accent mark definitions
115 . \" fudge factors for nroff and troff
124 . ds #H ((1u-(\\\\n(.fu%2u))*.13m)
130 . \" simple accents for nroff and troff
143 . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
144 . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
145 . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
146 . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
147 . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
148 . ds ? \s-2c\h'-\w'c'u*7/10'\u\h'\*(#H'\zi\d\s+2\h'\w'c'u*8/10'
149 . ds ! \s-2\(or\s+2\h'-\w'\(or'u'\v'-.8m'.\v'.8m'
150 . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
151 . ds q o\h'-\w'o'u*8/10'\s-4\v'.4m'\z\(*i\v'-.4m'\s+4\h'\w'o'u*8/10'
153 . \" troff and (daisy-wheel) nroff accents
154 .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
155 .ds 8 \h'\*(#H'\(*b\h'-\*(#H'
156 .ds v \\k:\h'-(\\n(.wu*9/10-\*(#H)'\v'-\*(#V'\*(#[\s-4v\s0\v'\*(#V'\h'|\\n:u'\*(#]
157 .ds _ \\k:\h'-(\\n(.wu*9/10-\*(#H+(\*(#F*2/3))'\v'-.4m'\z\(hy\v'.4m'\h'|\\n:u'
158 .ds . \\k:\h'-(\\n(.wu*8/10)'\v'\*(#V*4/10'\z.\v'-\*(#V*4/10'\h'|\\n:u'
159 .ds 3 \*(#[\v'.2m'\s-2\&3\s0\v'-.2m'\*(#]
160 .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
161 .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
162 .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
163 .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
164 .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
165 .ds ae a\h'-(\w'a'u*4/10)'e
166 .ds Ae A\h'-(\w'A'u*4/10)'E
167 .ds oe o\h'-(\w'o'u*4/10)'e
168 .ds Oe O\h'-(\w'O'u*4/10)'E
169 . \" corrections for vroff
170 .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
171 .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
172 . \" for low resolution devices (crt and lpr)
173 .if \n(.H>23 .if \n(.V>19 \
177 . ds v \h'-1'\o'\(aa\(ga'
193 cxxfilt \- Demangle \*(C+ and Java symbols.
195 c++filt [ \-_ | --strip-underscores ]
197 [ \-n | --no-strip-underscores ]
198 [ \-s \fIformat\fR | --format=\fIformat\fR ]
199 [ --help ] [ --version ] [ \fIsymbol\fR... ]
201 The \*(C+ and Java languages provides function overloading, which means
202 that you can write many functions with the same name (providing each
203 takes parameters of different types). All \*(C+ and Java function names
204 are encoded into a low-level assembly label (this process is known as
205 \fImangling\fR). The \f(CWc++filt\fR
207 program does the inverse mapping: it decodes (\fIdemangles\fR) low-level
208 names into user-level names so that the linker can keep these overloaded
209 functions from clashing.
211 Every alphanumeric word (consisting of letters, digits, underscores,
212 dollars, or periods) seen in the input is a potential label. If the
213 label decodes into a \*(C+ name, the \*(C+ name replaces the low-level
216 You can use \f(CWc++filt\fR to decipher individual symbols:
222 If no \fIsymbol\fR arguments are given, \f(CWc++filt\fR reads symbol
223 names from the standard input and writes the demangled names to the
224 standard output. All results are printed on the standard output.
227 .Ip "\f(CW--strip-underscores\fR" 4
228 On some systems, both the C and \*(C+ compilers put an underscore in front
229 of every name. For example, the C name \f(CWfoo\fR gets the low-level
230 name \f(CW_foo\fR. This option removes the initial underscore. Whether
231 \f(CWc++filt\fR removes the underscore by default is target dependent.
233 .Ip "\f(CW--java\fR" 4
234 Prints demangled names using Java syntax. The default is to use \*(C+
237 .Ip "\f(CW--no-strip-underscores\fR" 4
238 Do not remove the initial underscore.
239 .Ip "\f(CW-s \fIformat\fR\fR" 4
240 .Ip "\f(CW--format=\fIformat\fR\fR" 4
241 \s-1GNU\s0 \f(CWnm\fR can decode three different methods of mangling, used by
242 different \*(C+ compilers. The argument to this option selects which
245 the one used by the \s-1GNU\s0 compiler (the default method)
246 .Ip "\f(CWlucid\fR" 8
247 the one used by the Lucid compiler
249 the one specified by the \*(C+ Annotated Reference Manual
251 the one used by the \s-1HP\s0 compiler
253 the one used by the \s-1EDG\s0 compiler
254 .Ip "\f(CWgnu-new-abi\fR" 8
255 the one used by the \s-1GNU\s0 compiler with the new \s-1ABI\s0.
256 .Ip "\f(CW--help\fR" 4
257 Print a summary of the options to \f(CWc++filt\fR and exit.
258 .Ip "\f(CW--version\fR" 4
259 Print the version number of \f(CWc++filt\fR and exit.
262 \s-1MS\s0\-\s-1DOS\s0 does not allow \f(CW+\fR characters in file names, so on
263 \s-1MS\s0\-\s-1DOS\s0 this program is named \f(CWcxxfilt\fR.
265 the Info entries for \fIbinutils\fR.
267 Copyright (c) 1991, 92, 93, 94, 95, 96, 97, 98, 99, 2000, 2001 Free Software Foundation, Inc.
269 Permission is granted to copy, distribute and/or modify this document
270 under the terms of the GNU Free Documentation License, Version 1.1
271 or any later version published by the Free Software Foundation;
272 with no Invariant Sections, with no Front-Cover Texts, and with no
273 Back-Cover Texts. A copy of the license is included in the
274 section entitled \*(L"GNU Free Documentation License\*(R".
277 .IX Title "CXXFILT.MAN 1"
278 .IX Name "cxxfilt - Demangle C++ and Java symbols."
282 .IX Header "SYNOPSIS"
284 .IX Header "DESCRIPTION"
288 .IX Item "\f(CW-_\fR"
290 .IX Item "\f(CW--strip-underscores\fR"
292 .IX Item "\f(CW-j\fR"
294 .IX Item "\f(CW--java\fR"
296 .IX Item "\f(CW-n\fR"
298 .IX Item "\f(CW--no-strip-underscores\fR"
300 .IX Item "\f(CW-s \fIformat\fR\fR"
302 .IX Item "\f(CW--format=\fIformat\fR\fR"
304 .IX Item "\f(CWgnu\fR"
306 .IX Item "\f(CWlucid\fR"
308 .IX Item "\f(CWarm\fR"
310 .IX Item "\f(CWhp\fR"
312 .IX Item "\f(CWedg\fR"
314 .IX Item "\f(CWgnu-new-abi\fR"
316 .IX Item "\f(CW--help\fR"
318 .IX Item "\f(CW--version\fR"
320 .IX Header "FOOTNOTES"
324 .IX Header "SEE ALSO"
326 .IX Header "COPYRIGHT"