ADC Home > Reference Library > Reference > Mac OS X > Mac OS X Man Pages


This document is a Mac OS X manual page. Manual pages are a command-line technology for providing documentation. You can view these manual pages locally using the man(1) command. These manual pages come from many different sources, and thus, have a variety of writing styles.

This manual page is associated with the Mac OS X developer tools. The software or headers described may not be present on your Mac OS X installation until you install the developer tools package. This package is available on your Mac OS X installation DVD, and the latest versions can be downloaded from

For more information about the manual page format, see the manual page for manpages(5).

NM(1)                                                                                                  NM(1)

       nm - display name list (symbol table)

       nm  [ -agnoprumxjlfPA [ s segname sectname ]] [ - ] [ -t format ] [[ -arch arch_flag ]...] [ file ...

       Nm displays the name list (symbol table) of each object file in the argument list.  If an argument is
       an  archive, a listing for each object file in the archive will be produced.  File can be of the form
       libx.a(x.o), in which case only symbols from that member of the object file are listed.  (The  paren-theses parentheses
       theses have to be quoted to get by the shell.)  If no file is given, the symbols in a.out are listed.

       Each symbol name is preceded by its value (blanks if undefined).  Unless the -m option is  specified,
       this  value  is  followed  by one of the following characters, representing the symbol type: U (unde-fined), (undefined),
       fined), A (absolute), T (text section symbol), D (data section symbol), B  (bss  section  symbol),  C
       (common  symbol),  -  (for debugger symbol table entries; see -a below), S (symbol in a section other
       than those above), or I (indirect symbol).  If the symbol is local (non-external), the symbol's  type
       is  instead  represented  by  the corresponding lowercase letter.  A lower case u in a dynamic shared
       library indicates a undefined reference to a private external in another module in the same  library.

       If the symbol is a Objective C method, the symbol name is +-[Class_name(category_name) method:name:],
       where `+' is for class methods, `-' is for instance methods, and (category_name) is present only when
       the method is in a category.

       The output is sorted alphabetically by default.

       Options are:

       -a     Display all symbol table entries, including those inserted for use by debuggers.

       -g     Display only global (external) symbols.

       -n     Sort numerically rather than alphabetically.

       -o     Prepend file or archive element name to each output line, rather than only once.

       -p     Don't sort; display in symbol-table order.

       -r     Sort in reverse order.

       -u     Display only undefined symbols.

       -m     Display  the  N_SECT type symbols (Mach-O symbols) as (segment_name, section_name) followed by
              either external or non-external and then the symbol name.   Undefined,  common,  absolute  and
              indirect  symbols  get displayed as (undefined), (common), (absolute), and (indirect), respec-tively. respectively.

       -x     Display the symbol table entry's fields in hexadecimal, along with the name as a string.

       -j     Just display the symbol names (no value or type).

       -s segname sectname
              List only those symbols in the section (segname,sectname).

       -l     List a pseudo symbol .section_start if no symbol has as its value the starting address of  the
              section.  (This is used with the -s option above.)

       -arch arch_type
              Specifies  the architecture, arch_type, of the file for nm(1) to operate on when the file is a
              universal file (see arch(3) for the currently known arch_types).  The arch_type can  be  "all"
              to  operate on all architectures in the file.  The default is to display the symbols from only
              the host architecture, if the file contains it; otherwise, symbols for  all  architectures  in
              the file are displayed.

       -f     Display the symbol table of a dynamic library flat (as one file not separate modules).

       -A     Write the pathname or library name of an object on each line.

       -P     Write information in a portable output format.

       -t format
              For the -P output, write the numeric value in the specified format. The format shall be depen-dent dependent
              dent on the single character used as the format option-argument:

       d      The value shall be written in decimal (default).

       o      The value shall be written in octal.

       x      The value shall be written in hexadecimal.

       ar(1), ar(5), Mach-O(5), stab(5), nlist(3)

       Displaying Mach-O symbols with -m is too verbose.  Without the -m, symbols in the  Objective  C  sec-tions sections
       tions get displayed as an `s'.

Apple Computer, Inc.                            July 28, 2005                                          NM(1)

Did this document help you?
Yes: Tell us what works for you.
It’s good, but: Report typos, inaccuracies, and so forth.
It wasn’t helpful: Tell us what would have helped.