dwww Home | Manual pages | Find package

LLVM-NM(1)                           LLVM                           LLVM-NM(1)

NAME
       llvm-nm - list LLVM bitcode and object file's symbol table

SYNOPSIS
       llvm-nm [options] [filenames…]

DESCRIPTION
       The llvm-nm utility lists the names of symbols from LLVM bitcode files,
       object files, and archives. Each symbol is listed along with some  sim-
       ple  information  about  its  provenance.  If no filename is specified,
       a.out is used as the input. If - is used as a  filename,  llvm-nm  will
       read a file from its standard input stream.

       llvm-nm’s  default  output format is the traditional BSD nm output for-
       mat. Each such output record consists of an (optional) 8-digit hexadec-
       imal  address,  followed  by a type code character, followed by a name,
       for each symbol. One record is printed per line; fields  are  separated
       by spaces.  When the address is omitted, it is replaced by 8 spaces.

       The supported type code characters are as follows. Where both lower and
       upper-case characters are listed for the  same  meaning,  a  lower-case
       character  represents  a  local  symbol, whilst an upper-case character
       represents a global (external) symbol:

       a, A
          Absolute symbol.

       b, B
          Uninitialized data (bss) object.

       C
          Common symbol. Multiple definitions link together into  one  defini-
          tion.

       d, D
          Writable data object.

       i, I
          COFF:  .idata  symbol or symbol in a section with IMAGE_SCN_LNK_INFO
          set.

       n
          ELF: local symbol from non-alloc section.

          COFF: debug symbol.

       N
          ELF: debug section symbol, or global symbol from non-alloc section.

       s, S
          COFF: section symbol.

          Mach-O:  absolute  symbol  or  symbol  from  a  section  other  than
          __TEXT_EXEC __text, __TEXT __text, __DATA __data, or __DATA __bss.

       r, R
          Read-only data object.

       t, T
          Code (text) object.

       u
          ELF: GNU unique symbol.

       U
          Named object is undefined in this file.

       v
          ELF:  Undefined  weak object. It is not a link failure if the object
          is not defined.

       V
          ELF: Defined weak object symbol. This definition will only  be  used
          if  no regular definitions exist in a link. If multiple weak defini-
          tions and no regular definitions exist, one of the weak  definitions
          will be used.

       w
          Undefined  weak  symbol other than an ELF object symbol. It is not a
          link failure if the symbol is not defined.

       W
          Defined weak symbol other than an ELF object symbol. This definition
          will only be used if no regular definitions exist in a link. If mul-
          tiple weak definitions and no regular definitions exist, one of  the
          weak definitions will be used.

       -
          Mach-O: N_STAB symbol.

       ?
          Something unrecognizable.

       Because  LLVM bitcode files typically contain objects that are not con-
       sidered to have addresses until they are linked into an executable  im-
       age  or  dynamically compiled “just-in-time”, llvm-nm does not print an
       address for any symbol in an LLVM bitcode file, even symbols which  are
       defined in the bitcode file.

OPTIONS
       -B     Use BSD output format. Alias for --format=bsd.

       -X     Specify  the  type  of XCOFF object file, ELF object file, or IR
              object file input from command line or from archive  files  that
              llvm-nm should examine. The mode must be one of the following:

                     32     Process only 32-bit object files.

                     64     Process only 64-bit object files.

                     32_64  Process both 32-bit and 64-bit object files.

                     any    Process all the supported object files.

                 On AIX OS, the default is to process 32-bit object files only
                 and to ignore 64-bit objects. The can be changed  by  setting
                 the   OBJECT_MODE  environment  variable.  For  example,  OB-
                 JECT_MODE=64 causes llvm-nm to process 64-bit objects and ig-
                 nore  32-bit  objects.  The -X flag overrides the OBJECT_MODE
                 variable.

                 On other operating systems, the default is to process all ob-
                 ject  files: the OBJECT_MODE environment variable is not sup-
                 ported.

       --debug-syms, -a
              Show all symbols, even those usually suppressed.

       --defined-only, -U
              Print only symbols defined in this file.

       --demangle, -C
              Demangle symbol names.

       --dynamic, -D
              Display dynamic symbols instead of normal symbols.

       --export-symbols
              Print sorted symbols with their visibility (if applicable), with
              duplicates removed.

       --extern-only, -g
              Print  only symbols whose definitions are external; that is, ac-
              cessible from other files.

       --format=<format>, -f
              Select an output format; format may be sysv, posix, darwin,  bsd
              or just-symbols.  The default is bsd.

       --help, -h
              Print a summary of command-line options and their meanings.

       -j     Print just the symbol names. Alias for –format=just-symbols`.

       -m     Use Darwin format. Alias for --format=darwin.

       --no-demangle
              Don’t demangle symbol names. This is the default.

       --no-llvm-bc
              Disable the LLVM bitcode reader.

       --no-sort, -p
              Show symbols in the order encountered.

       --no-weak, -W
              Don’t print weak symbols.

       --numeric-sort, -n, -v
              Sort symbols by address.

       --portability, -P
              Use POSIX.2 output format.  Alias for --format=posix.

       --print-armap
              Print the archive symbol table, in addition to the symbols.

       --print-file-name, -A, -o
              Precede each symbol with the file it came from.

       --print-size, -S
              Show symbol size as well as address (not applicable for Mach-O).

       --quiet
              Suppress ‘no symbols’ diagnostic.

       --radix=<RADIX>, -t
              Specify the radix of the symbol address(es). Values accepted are
              d (decimal), x (hexadecimal) and o (octal).

       --reverse-sort, -r
              Sort symbols in reverse order.

       --size-sort
              Sort symbols by size.

       --special-syms
              Do not filter special symbols from the output.

       --undefined-only, -u
              Print only undefined symbols.

       --version, -V
              Display the version of the llvm-nm executable, then  exit.  Does
              not stack with other commands.

       @<FILE>
              Read command-line options from response file <FILE>.

MACH-O SPECIFIC OPTIONS
       --add-dyldinfo
              Add  symbols  from  the dyldinfo, if they are not already in the
              symbol table.  This is the default.

       --add-inlinedinfo
              Add symbols from the inlined libraries, TBD file inputs only.

       --arch=<arch1[,arch2,...]>
              Dump the symbols from the specified architecture(s).

       --dyldinfo-only
              Dump only symbols from the dyldinfo.

       --no-dyldinfo
              Do not add any symbols from the dyldinfo.

       -s <segment> <section>
              Dump only symbols from this segment and section name.

       -x     Print symbol entry in hex.

XCOFF SPECIFIC OPTIONS
       --no-rsrc
              Exclude resource file symbols (__rsrc) from export symbol list.

BUGSllvm-nm does not support the full set of  arguments  that  GNU  nm
            does.

EXIT STATUS
       llvm-nm exits with an exit code of zero.

SEE ALSO
       llvm-ar(1), llvm-objdump(1), llvm-readelf(1), llvm-readobj(1)

AUTHOR
       Maintained by the LLVM Team (https://llvm.org/).

COPYRIGHT
       2003-2023, LLVM Project

15                                2023-10-16                        LLVM-NM(1)

Generated by dwww version 1.15 on Sun Jun 23 21:56:34 CEST 2024.