Commit | Line | Data |
---|---|---|
08ad9921 JO |
1 | .\" Copyright (c) 1991 Free Software Foundation |
2 | .\" See section COPYING for conditions for redistribution | |
3 | .TH c++filt 1 "June 1993" "cygnus support" "GNU Development Tools" | |
4 | .de BP | |
5 | .sp | |
6 | .ti \-.2i | |
7 | \(** | |
8 | .. | |
9 | ||
10 | .SH NAME | |
b26ac613 | 11 | c++filt\(em\&demangle C++ symbols |
08ad9921 JO |
12 | |
13 | .SH SYNOPSIS | |
b26ac613 DM |
14 | .hy 0 |
15 | .na | |
16 | .TP | |
08ad9921 | 17 | .B c++filt |
b26ac613 DM |
18 | .RB "[\|" \-_ | \-\-strip-underscores "\|]" |
19 | .RB "[\|" "\-s {gnu,lucid,arm} " | " \-\-format={gnu,lucid,arm}" "\|]" | |
20 | .RB "[\|" \-\-help "\|]" | |
21 | .RB "[\|" \-\-version "\|]" | |
dc4fba51 | 22 | .RB "[\|" symbol "...\|]" |
08ad9921 JO |
23 | .SH DESCRIPTION |
24 | The C++ language provides function overloading, which means that you can | |
25 | write many functions with the same name (providing each takes parameters | |
26 | of different types). All C++ function names are encoded into a | |
b26ac613 DM |
27 | low-level assembly label (this process is known as |
28 | .I mangling\c | |
29 | ). The | |
08ad9921 JO |
30 | .B c++filt |
31 | program does the inverse mapping: it decodes (\fIdemangles\fR) | |
32 | low-level names into user-level names so that the linker can keep | |
33 | these overloaded functions from clashing. | |
b26ac613 | 34 | .PP |
08ad9921 JO |
35 | Every alphanumeric word (consisting of letters, digits, underscores, |
36 | dollars, or periods) seen in the input is a potential label. If the | |
37 | label decodes into a C++ name, the C++ name replaces the low-level | |
38 | name in the output. | |
b26ac613 | 39 | .PP |
dc4fba51 | 40 | You can use |
08ad9921 JO |
41 | .B c++filt |
42 | to decipher individual symbols by specifying these symbols on the | |
43 | command line. | |
b26ac613 | 44 | .PP |
dc4fba51 DM |
45 | If no |
46 | .B symbol | |
47 | arguments are given, | |
48 | .B c++filt | |
49 | reads symbol names from the standard input and writes the demangled | |
50 | names to the standard output. All results are printed on the standard | |
51 | output. | |
b26ac613 DM |
52 | .SH OPTIONS |
53 | .TP | |
54 | .B \-_ | |
55 | .TP | |
56 | .B \-\-strip\-underscores | |
57 | On some systems, both the C and C++ compilers put an | |
58 | underscore in front of every name. For example, the C name | |
08ad9921 JO |
59 | .B foo |
60 | gets the low-level name | |
b26ac613 DM |
61 | .BR _foo . |
62 | This option removes the leading underscore. | |
63 | ||
64 | .TP | |
65 | .B "\-s {gnu,lucid,arm}" | |
66 | .TP | |
67 | .B \-\-format={gnu,lucid,arm} | |
68 | GNU | |
69 | .B nm | |
70 | can decode three different methods of mangling, used by different C++ | |
71 | compilers. This option selects which method it uses: the one used by | |
72 | the GNU compiler, the one used by the Lucid compiler, or the one | |
73 | specified by the C++ Annotated Reference Manual. The default is the | |
74 | GNU style. | |
75 | ||
76 | .TP | |
77 | .B \-\-help | |
78 | Print a summary of the options to | |
79 | .B c++filt | |
80 | and exit. | |
81 | ||
82 | .TP | |
83 | .B \-\-version | |
84 | Print the version number of | |
85 | .B c++filt | |
86 | and exit. | |
08ad9921 JO |
87 | |
88 | .SH "SEE ALSO" | |
89 | .RB "`\|" binutils "\|'" | |
90 | entry in | |
91 | .B | |
92 | info\c | |
93 | \&; | |
94 | .I | |
95 | The GNU Binary Utilities\c | |
96 | \&, Roland H. Pesch (June 1993). | |
97 | ||
98 | .SH COPYING | |
99 | Copyright (c) 1993 Free Software Foundation, Inc. | |
100 | .PP | |
101 | Permission is granted to make and distribute verbatim copies of | |
102 | this manual provided the copyright notice and this permission notice | |
103 | are preserved on all copies. | |
104 | .PP | |
105 | Permission is granted to copy and distribute modified versions of this | |
106 | manual under the conditions for verbatim copying, provided that the | |
107 | entire resulting derived work is distributed under the terms of a | |
108 | permission notice identical to this one. | |
109 | .PP | |
110 | Permission is granted to copy and distribute translations of this | |
111 | manual into another language, under the above conditions for modified | |
112 | versions, except that this permission notice may be included in | |
113 | translations approved by the Free Software Foundation instead of in | |
114 | the original English. |