Penguin
Annotated edit history of c++filt(1) version 1, including all changes. View license author blame.
Rev Author # Line
1 perry 1 C++FILT
2 !!!C++FILT
3 NAME
4 SYNOPSIS
5 DESCRIPTION
6 OPTIONS
7 FOOTNOTES
8 SEE ALSO
9 COPYRIGHT
10 ----
11 !!NAME
12
13
14 c++filt - Demangle C ++ and Java symbols.
15 !!SYNOPSIS
16
17
18 c++filt [[__-_--strip-underscores__] [[__-j--java__]
19 [[__-n--no-strip-underscores__] [[__-s__
20 ''format''__--format=__''format''] [[__--help__]
21 [[__--version__] [[''symbol''...]
22 !!DESCRIPTION
23
24
25 The C ++ and Java languages provides function
26 overloading, which means that you can write many functions
27 with the same name (providing each takes parameters of
28 different types). All C ++ and Java function
29 names are encoded into a low-level assembly label (this
30 process is known as ''mangling''). The __c++filt__ [[1]
31 program does the inverse mapping: it decodes
32 (''demangles'') low-level names into user-level names so
33 that the linker can keep these overloaded functions from
34 clashing.
35
36
37 Every alphanumeric word (consisting of letters, digits,
38 underscores, dollars, or periods) seen in the input is a
39 potential label. If the label decodes into a C
40 ++ name, the C ++ name
41 replaces the low-level name in the output.
42
43
44 You can use __c++filt__ to decipher individual
45 symbols:
46
47
48 c++filt I
49 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.
50 !!OPTIONS
51
52
53 __-___
54
55
56 __--strip-underscores__
57
58
59 On some systems, both the C and C ++
60 compilers put an underscore in front of every name. For
61 example, the C name foo gets the low-level name
62 _foo. This option removes the initial underscore.
63 Whether __c++filt__ removes the underscore by default is
64 target dependent.
65
66
67 __-j__
68
69
70 __--java__
71
72
73 Prints demangled names using Java syntax. The default is to
74 use C ++ syntax.
75
76
77 __-n__
78
79
80 __--no-strip-underscores__
81
82
83 Do not remove the initial underscore.
84
85
86 __-s__ ''format''
87
88
89 __--format=__''format''
90
91
92 GNU __nm__ can decode three different
93 methods of mangling, used by different C ++
94 compilers. The argument to this option selects which method
95 it uses:
96
97
98 gnu
99
100
101 the one used by the GNU compiler (the default
102 method)
103
104
105 lucid
106
107
108 the one used by the Lucid compiler
109
110
111 arm
112
113
114 the one specified by the C ++ Annotated
115 Reference Manual
116
117
118 hp
119
120
121 the one used by the HP compiler
122
123
124 edg
125
126
127 the one used by the EDG compiler
128
129
130 gnu-new-abi
131
132
133 the one used by the GNU compiler with the new
134 ABI .
135
136
137 __--help__
138
139
140 Print a summary of the options to __c++filt__ and
141 exit.
142
143
144 __--version__
145
146
147 Print the version number of __c++filt__ and
148 exit.
149 !!FOOTNOTES
150
151
152 1.
153
154
155 MS-DOS does not allow + characters in file names,
156 so on MS-DOS this program is named
157 __c++filt__.
158 !!SEE ALSO
159
160
161 the Info entries for ''binutils''.
162 !!COPYRIGHT
163
164
165 Copyright (c) 1991, 92, 93, 94, 95, 96, 97, 98, 99, 2000,
166 2001, 2002 Free Software Foundation, Inc.
167
168
169 Permission is granted to copy, distribute and/or modify this
170 document under the terms of the GNU Free
171 Documentation License, Version 1.1 or any later version
172 published by the Free Software Foundation; with no Invariant
173 Sections, with no Front-Cover Texts, and with no Back-Cover
174 Texts. A copy of the license is included in the section
175 entitled `` GNU Free Documentation
176 License''.
177 ----
This page is a man page (or other imported legacy content). We are unable to automatically determine the license status of this page.