Mac Developer Library Developer


This manual page is part of Xcode Tools version 4.0

To obtain these tools:

If you are running a version of Xcode Tools other than 4.0, view the documentation locally:

  • In Xcode

  • In Terminal, using the man(1) command

Reading manual pages

Manual pages are intended as a quick reference for people who already understand a technology.

  • To learn how the manual is organized or to learn about command syntax, read the manual page for manpages(5).

  • For more information about this technology, look for other documentation in the Apple Developer Library.

  • For general information about writing shell scripts, read Shell Scripting Primer.

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.

       -U     Don't display 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, Inc.                                    March 26, 2010                                          NM(1)

Reporting Problems

The way to report a problem with this manual page depends on the type of problem:

Content errors
Report errors in the content of this documentation with the feedback links below.
Bug reports
Report bugs in the functionality of the described tool or API through Bug Reporter.
Formatting problems
Report formatting mistakes in the online version of these pages with the feedback links below.