[llvm-nm] Update documentation to cover object file support and arguments.

llvm-svn: 158120
This commit is contained in:
Michael J. Spencer 2012-06-06 23:34:10 +00:00
parent ff045dc040
commit 838e5add7e
2 changed files with 76 additions and 41 deletions

View File

@ -1,29 +1,29 @@
llvm-nm - list LLVM bitcode file's symbol table llvm-nm - list LLVM bitcode and object file's symbol table
=============================================== ==========================================================
SYNOPSIS SYNOPSIS
-------- --------
**llvm-nm** [*options*] [*filenames...*] :program:`llvm-nm` [*options*] [*filenames...*]
DESCRIPTION DESCRIPTION
----------- -----------
The **llvm-nm** utility lists the names of symbols from the LLVM bitcode files, The :program:`llvm-nm` utility lists the names of symbols from the LLVM bitcode
or **ar** archives containing LLVM bitcode files, named on the command line. files, object files, or :program:`ar` archives containing them, named on the
Each symbol is listed along with some simple information about its provenance. command line. Each symbol is listed along with some simple information about its
If no file name is specified, or *-* is used as a file name, **llvm-nm** will provenance. If no file name is specified, or *-* is used as a file name,
process a bitcode file on its standard input stream. :program:`llvm-nm` will process a file on its standard input stream.
**llvm-nm**'s default output format is the traditional BSD **nm** output format. :program:`llvm-nm`'s default output format is the traditional BSD :program:`nm`
Each such output record consists of an (optional) 8-digit hexadecimal address, output format. Each such output record consists of an (optional) 8-digit
followed by a type code character, followed by a name, for each symbol. One hexadecimal address, followed by a type code character, followed by a name, for
record is printed per line; fields are separated by spaces. When the address is each symbol. One record is printed per line; fields are separated by spaces.
omitted, it is replaced by 8 spaces. When the address is omitted, it is replaced by 8 spaces.
Type code characters currently supported, and their meanings, are as follows: Type code characters currently supported, and their meanings, are as follows:
@ -78,73 +78,108 @@ D
Because LLVM bitcode files typically contain objects that are not considered to Because LLVM bitcode files typically contain objects that are not considered to
have addresses until they are linked into an executable image or dynamically have addresses until they are linked into an executable image or dynamically
compiled "just-in-time", **llvm-nm** does not print an address for any symbol, compiled "just-in-time", :program:`llvm-nm` does not print an address for any
even symbols which are defined in the bitcode file. symbol in a LLVM bitcode file, even symbols which are defined in the bitcode
file.
OPTIONS OPTIONS
------- -------
.. program:: llvm-nm
**-P**
Use POSIX.2 output format. Alias for **--format=posix**.
.. option:: -B (default)
**-B** (default) Use BSD output format. Alias for :option:`--format=bsd`.
Use BSD output format. Alias for **--format=bsd**.
.. option:: -P
**-help** Use POSIX.2 output format. Alias for :option:`--format=posix`.
Print a summary of command-line options and their meanings.
.. option:: --debug-syms, -a
**--defined-only** Show all symbols, even debugger only.
Print only symbols defined in this bitcode file (as opposed to
.. option:: --defined-only
Print only symbols defined in this file (as opposed to
symbols which may be referenced by objects in this file, but not symbols which may be referenced by objects in this file, but not
defined in this file.) defined in this file.)
.. option:: --dynamic, -D
**--extern-only**, **-g** Display dynamic symbols instead of normal symbols.
.. option:: --extern-only, -g
Print only symbols whose definitions are external; that is, accessible Print only symbols whose definitions are external; that is, accessible
from other bitcode files. from other files.
.. option:: --format=format, -f format
**--undefined-only**, **-u** Select an output format; *format* may be *sysv*, *posix*, or *bsd*. The default
is *bsd*.
Print only symbols referenced but not defined in this bitcode file.
.. option:: -help
Print a summary of command-line options and their meanings.
Select an output format; *fmt* may be *sysv*, *posix*, or *bsd*. The .. option:: --no-sort, -p
default is *bsd*.
Shows symbols in order encountered.
.. option:: --numeric-sort, -n, -v
Sort symbols by address.
.. option:: --print-file-name, -A, -o
Precede each symbol with the file it came from.
.. option:: --print-size, -S
Show symbol size instead of address.
.. option:: --size-sort
Sort symbols by size.
.. option:: --undefined-only, -u
Print only symbols referenced but not defined in this file.
BUGS BUGS
---- ----
**llvm-nm** cannot demangle C++ mangled names, like GNU **nm** can. * :program:`llvm-nm` cannot demangle C++ mangled names, like GNU :program:`nm`
can.
* :program:`llvm-nm` does not support the full set of arguments that GNU
:program:`nm` does.
EXIT STATUS EXIT STATUS
----------- -----------
**llvm-nm** exits with an exit code of zero. :program:`llvm-nm` exits with an exit code of zero.
SEE ALSO SEE ALSO

View File

@ -7,12 +7,12 @@
// //
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
// //
// This program is a utility that works like traditional Unix "nm", // This program is a utility that works like traditional Unix "nm", that is, it
// that is, it prints out the names of symbols in a bitcode file, // prints out the names of symbols in a bitcode or object file, along with some
// along with some information about each symbol. // information about each symbol.
// //
// This "nm" does not print symbols' addresses. It supports many of // This "nm" supports many of the features of GNU "nm", including its different
// the features of GNU "nm", including its different output formats. // output formats.
// //
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//