@ifinfo
@format
START-INFO-DIR-ENTRY
-* Binutils: (binutils). The GNU binary utilities "ar", "ld", "objcopy",
- "objdump", "nm", "size", "strip", and "ranlib".
+* Binutils:: The GNU binary utilities "ar", "ld", "objcopy",
+ "objdump", "nm", "size", "strings", "strip", and "ranlib".
END-INFO-DIR-ENTRY
@end format
@end ifinfo
@synindex ky cp
@c
@c This file documents the GNU binary utilities "ar", "ld", "objcopy",
-@c "objdump", "nm", "size", "strip", and "ranlib".
+@c "objdump", "nm", "size", "strings", "strip", and "ranlib".
@c
@c Copyright (C) 1991, 1992, 1993 Free Software Foundation, Inc.
@c
@item size
List section sizes and total size
+@item strings
+List printable strings from files
+
@item strip
Discard symbols
@end table
* objdump:: Display information from object files
* ranlib:: Generate index to archive contents
* size:: List section sizes and total size
+* strings:: List printable strings from files
* strip:: Discard symbols
* c++filt:: Filter to demangle encoded C++ symbols
* Index::
[ -O @var{format} | --output-format=@var{format} ]
[ -S | --strip-all ] [ -g | --strip-debug ]
[ -x | --discard-all ] [ -X | --discard-locals ]
- [ -v | --verbose ] [ -V | --version ]
+ [ -v | --verbose ] [ -V | --version ] [ --help ]
@var{infile} [@var{outfile}]
@end smallexample
@itemx --verbose
Verbose output: list all object files modified. In the case of
archives, @samp{objcopy -V} lists all members of the archive.
+
+@item --help
+Show a summary of the options to @code{objcopy}.
@end table
@iftex
[ -r | --reverse-sort ] [ -u | --undefined-only ]
[ -t @var{radix} | --radix=@var{radix} ] [ -P | --portability ]
[ --target=@var{bfdname} ] [ -f @var{format} | --format=@var{format} ]
- [ -V | --version ] [ @var{objfile}@dots{} ]
+ [ -V | --version ] [ --help ] [ @var{objfile}@dots{} ]
@end smallexample
GNU @code{nm} lists the symbols from object files @var{objfile}@dots{}.
@itemx --format=@var{format}
Use the output format @var{format}, which can be @code{bsd},
@code{sysv}, or @code{posix}. The default is @code{bsd}.
-Only the first character of @var{format} is significant, it can be
+Only the first character of @var{format} is significant; it can be
either upper or lower case.
@item -g
@cindex external symbols
Display only external symbols.
+@item -n
+@itemx -v
+@itemx --numeric-sort
+Sort symbols numerically by their addresses, rather than alphabetically
+by their names.
+
@item -p
@itemx --no-sort
@cindex sorting symbols
Use the POSIX.2 standard output format instead of the default format.
Equivalent to @samp{-f posix}.
-@item -n
-@itemx -v
-@itemx --numeric-sort
-Sort symbols numerically by their addresses, rather than alphabetically
-by their names.
-
@item -s
@itemx --print-armap
@cindex symbol index, listing
@item -V
@itemx --version
-Show the version number of @code{nm}.
+Show the version number of @code{nm} and exit.
+
+@item --help
+Show a summary of the options to @code{nm} and exit.
@end table
@node objdump, ranlib, nm, Top
@smallexample
objdump [ -a ] [ -b @var{bfdname} ] [ -d ] [ -f ]
[ -h | --header ] [ -i ] [ -j @var{section} ] [ -l ]
- [ -m @var{machine} ] [ -r | --reloc ] [ -s ]
- [ --stabs ] [ -t | --syms ] [ -x ]
+ [ -m @var{machine} ] [ -r | --reloc ] [ -s ] [ --stabs ]
+ [ -t | --syms ] [ -x ] [ --version ] [ --help ]
@var{objfile}@dots{}
@end smallexample
compilation tools, as opposed to programmers who just want their
program to compile and work.
+@var{objfile}@dots{} are the object files to be examined. When you
+specify archives, @code{objdump} shows information on each of the member
+object files.
+
The long and short forms of options, shown here as alternatives, are
equivalent.
@table @code
-@item @var{objfile}@dots{}
-The object files to be examined. When you specify archives,
-@code{objdump} shows information on each of the member object files.
-
@item -a
@c print_arelt_descr
@cindex archive headers
Header. Display summary information from the section headers of the
object file.
+@item --help
+Print a summary of the options to @code{objdump} and exit.
+
@item -i
@cindex architectures available
@cindex object formats available
Symbol Table. Print the symbol table entries of the file.
This is similar to the information provided by the @samp{nm} program.
+@item --version
+Print the version number of @code{objdump} and exit.
+
@item -x
@cindex all header information, object file
@cindex header information, all
Display all available header information, including the symbol table and
relocation entries. Using @samp{-x} is equivalent to specifying all of
@samp{-a -f -h -r -t}.
-
@end table
@node ranlib, size, objdump, Top
Show the version number of @code{ranlib}.
@end table
-@node size, strip, ranlib, Top
+@node size, strings, ranlib, Top
@chapter size
@kindex size
argument list. By default, one line of output is generated for each
object file or each module in an archive.
+@var{objfile}@dots{} are the object files to be examined.
+
The command line options have the following meanings:
-@table @code
-@item @var{objfile}@dots{}
-The object files to be examined.
+@table @code
@item -A
@itemx -B
@itemx --format=@var{compatibility}
Display the version number of @code{size}.
@end table
-@node strip, c++filt, size, Top
+@node strings, strip, size, Top
+@chapter strings
+@kindex strings
+@cindex listings strings
+@cindex printing strings
+@cindex strings, printing
+
+@smallexample
+strings [-afov] [-@var{min-len}] [-n @var{min-len}] [-t @var{radix}] [-]
+ [--all] [--print-file-name] [--bytes=@var{min-len}] [--radix=@var{radix}]
+ [--help] [--version] @var{file}@dots{}
+@end smallexample
+
+For each @var{file} given, GNU @code{strings} prints the printable
+character sequences that are at least 4 characters long (or the number
+given with the options below) and are followed by a NUL or newline
+character. By default, it only prints the strings from the initialized
+data sections of object files; for other types of files, it prints the
+strings from the whole file.
+
+@code{strings} is mainly useful for determining the contents of non-text
+files.
+
+@table @code
+@item -a
+@itemx --all
+@itemx -
+Do not scan only the initialized data section of object files; scan
+the whole files.
+
+@item -f
+@itemx --print-file-name
+Print the name of the file before each string.
+
+@item --help
+Print a summary of the program usage on the standard output and exit.
+
+@itemx -@var{min-len}
+@item -n @var{min-len}
+@itemx --bytes=@var{min-len}
+Print sequences of characters that are at least @var{min-len} characters
+long, instead of the default 4.
+
+@item -o
+Like @samp{-t o}. Some other versions of @code{strings} have @samp{-o}
+act like @samp{-t d} instead. Since we can not be compatible with both
+ways, we simply chose one.
+
+@item -t @var{radix}
+@itemx --radix=@var{radix}
+Print the offset within the file before each string. The single
+character argument specifies the radix of the offset---@samp{o} for
+octal, @samp{x} for hexadecimal, or @samp{d} for decimal.
+
+@item -v
+@itemx --version
+Print the program version number on the standard output and exit.
+@end table
+
+@node strip, c++filt, strings, Top
@chapter strip
@kindex strip
[ -O @var{format} | --output-format=@var{format} ]
[ -s | --strip-all ] [ -S | -g | --strip-debug ]
[ -x | --discard-all ] [ -X | --discard-locals ]
- [ -v | --verbose ] [ -V | --version ]
+ [ -v | --verbose ] [ -V | --version ] [ --help ]
@var{objfile}@dots{}
@end smallexample
GNU @code{strip} discards all symbols from object files
@var{objfile}. The list of object files may include archives.
-
-@code{strip} will not execute unless at least one object file is listed.
+At least one object file must be given.
@code{strip} modifies the files named in its argument,
rather than writing modified copies under different names.
@table @code
+@item -F @var{format}
+@itemx --format=@var{format}
+@itemx --target=@var{format}
+Treat the original @var{objfile} as a file with the object
+code format @var{format}, and rewrite it in the same format.
+
+@item --help
+Show a summary of the options to @code{strip} and exit.
+
@item -I @var{format}
@itemx --input-format=@var{format}
Treat the original @var{objfile} as a file with the object
@itemx --output-format=@var{format}
Replace @var{objfile} with a file in the output format @var{format}.
-@item -F @var{format}
-@itemx --format=@var{format}
-@itemx --target=@var{format}
-Treat the original @var{objfile} as a file with the object
-code format @var{format}, and rewrite it in the same format.
-
@item -s
@itemx --strip-all
Remove all symbols.
@kindex c++filt
@cindex demangling C++ symbols
+@smallexample
+c++filt [ -_ | --strip-underscores ]
+ [ -s @var{format} | --format=@var{format} ]
+ [ --help ] [ --version ] [ @var{arg}@dots{} ]
+@end smallexample
+
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
+low-level assembly label (this process is known 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.
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
-low-level name @code{_foo}.) On such systems, @code{c++filt} removes
-any initial underscore of a potential label.
+@table @code
+@item -_
+@item --strip-underscores
+On some systems, both the C and C++ compilers put an underscore in front
+of every name. For example, the C name @code{foo} gets the low-level
+name @code{_foo}. This option removes the initial underscore.
+
+@item -s @var{format}
+@itemx --format=@var{format}
+GNU @code{nm} can decode three different methods of mangling, used by
+different C++ compilers. The argument to this option selects which
+method it uses:
+
+@table @code
+@item gnu
+the one used by the GNU compiler (the default method)
+@item lucid
+the one used by the Lucid compiler
+@item arm
+the one specified by the C++ Annotated Reference Manual
+@end table
+
+@item --help
+Print a summary of the options to @code{c++filt} and exit.
+
+@item --version
+Print the version number of @code{c++filt} and exit.
+@end table
@quotation
@emph{Warning:} @code{c++filt} is a new utility, and the details of its
passed as an argument on the command line; in other words,
@example
-c++filt @var{SYMBOL}
+c++filt @var{symbol}
@end example
@noindent
may in a future release become
@example
-c++filt @var{flag} @var{SYMBOL}
+c++filt @var{option} @var{symbol}
@end example
@end quotation