* biutils.texi: revised c++filt chapter
authorJeffrey Osier <jeffrey@cygnus>
Fri, 28 May 1993 00:00:59 +0000 (00:00 +0000)
committerJeffrey Osier <jeffrey@cygnus>
Fri, 28 May 1993 00:00:59 +0000 (00:00 +0000)
binutils/ChangeLog
binutils/binutils.texi

index 1c55ee8ae77c50c06bbc7cfbe84702f3294d64a4..7071e4e6592f8da024b07994e36dce265b2ae439 100644 (file)
@@ -1,3 +1,7 @@
+Thu May 27 16:58:31 1993  Jeffrey Osier  (jeffrey@cygnus.com)
+
+        * biutils.texi:  revised c++filt chapter
+
 Wed May 26 17:24:17 1993  Ian Lance Taylor  (ian@cygnus.com)
 
        * Makefile.in (FLAGS_TO_PASS): Pass down CC and CFLAGS.
index f8f7845f5c5f299331b5d9fa564b1f05123b2592..22af2de2ea82c32eb285df408d1cfef32002bd6d 100644 (file)
@@ -1102,22 +1102,33 @@ archives, @samp{strip -v} lists all members of the archive.
 @kindex c++filt
 @cindex demangling C++ symbols
 
-The C++ language provides function overloading, which means that
-you can write many function with the same name (but taking
-different kinds of parameters).  So that the linker can keep these
-overloaded functions from clashing, all C++ function names are
-encoded (``mangled'') into a funny-looking low-level assembly label.
-The @code{c++filt} program does the inverse mapping:  It decodes
-(``demangles'') low-level names into user-level names.
-
-When you use @code{c++filt} as a filter (which is usually the case),
-it reads from standard input.  Every alphanumeric word (consisting
-of letters, digits, underscores, dollars, or periods) seen in the
-input is a potential label.  If the label decodes into a C++ name.
-the C++ name will replace the low-level name in the output.
+The C++ language provides function overloading, which means that you can
+write many functions with the same name (providing each takes parameters
+of different types).  All C++ function names are encoded into a
+low-level assembly label (in some circles this is described as
+@dfn{mangling}). The @code{c++filt} program does the inverse mapping: it
+decodes (@dfn{demangles}) low-level names into user-level names so that
+the linker can keep these overloaded functions from clashing.
+
+Every alphanumeric word (consisting of letters, digits, underscores,
+dollars, or periods) seen in the input is a potential label.  If the
+label decodes into a C++ name, the C++ name replaces the low-level
+name in the output.
 
 A typical use of @code{c++filt} is to pipe the output of @code{nm}
-though it.
+though it, using @code{c++filt} as a filter:
+
+@example
+nm @var{objfile} | c++filt
+@end example
+
+You can also use @code{c++filt} to decipher individual symbols:
+
+@example
+c++filt @var{symbol}
+@end example
+
+All results are printed on the standard output.
 
 Note that on some systems, both the C and C++ compilers put an
 underscore in front of every name.  (I.e. the C name @code{foo} gets the