Nm - comandă Linux - comandă Unix

nm - simboluri de listă din fișierele obiect

REZUMAT

nm [ -a | --debug-simme ] [ -g | - numai pentru exterior ]
[ -B ] [ -C | --demangle [= stil ]] [ -D | --dynamic ]
[ -S | - dimensiunea tiparului ] [ -s | --print-armap ]
[ -A | -o | -print-file-name ]
[ -n | -v | - sortare numerică ] [ -p | - nu-sorta ]
[ -r | --versiune-sortare ] [ --size-sortare ] [ -u | --undefined-only ]
[ -t radix | --radix = radix ] [ -P | --portabilitate ]
[ --target = nume bfd ] [ -f format | --format = format ]
[ --definită numai ] [ -l | --line-numere ] [ --no-demangle ]
[ -V | --versiune ] [ -X 32_64 ] [ --help ] [ objfile ...]

DESCRIERE

GNU nm afișează simbolurile din fișierele obiecte objfile .... Dacă nici un fișier obiect nu este enumerat ca argument, nm presupune fișierul a.out .

Pentru fiecare simbol, nm indică:

*

Valoarea simbolului, în radixul selectat de opțiuni (vedeți mai jos) sau hexazecimal în mod implicit.

*

Tipul de simbol. Sunt utilizate cel puțin următoarele tipuri; altele sunt, de asemenea, în funcție de formatul de fișier obiect. În cazul în litere mici, simbolul este local; dacă este mare, simbolul este global (extern).

A

Valoarea simbolului este absolută și nu va fi modificată prin legarea ulterioară.

B

Simbolul este în secțiunea de date neinitializate (cunoscută sub numele de BSS).

C

Simbolul este comun. Simbolurile comune sunt date neinitializate. La conectare, mai multe simboluri comune pot apărea cu același nume. Dacă simbolul este definit oriunde, simbolurile comune sunt tratate ca referințe nedefinite.

D

Simbolul se află în secțiunea de date inițializate.

G

Simbolul se află într-o secțiune de date inițializată pentru obiecte mici. Unele formate de fișiere obiect permit un acces mai eficient la obiecte de date mici, cum ar fi o variabilă int global, spre deosebire de o matrice globală mare.

eu

Simbolul este o referință indirectă la un alt simbol. Aceasta este o extensie GNU pentru formatul de fișier obiect a.out care este rar folosit.

N

Simbolul este un simbol de depanare.

R

Simbolul se află într-o secțiune de date numai pentru citire.

S

Simbolul se află într-o secțiune de date neinitializată pentru obiecte mici.

T

Simbolul este în secțiunea text (cod).

U

Simbolul este nedefinit.

V

Un simbol este un obiect slab. Atunci când un simbol slab definit este legat de un simbol normal definit, simbolul definit normal este utilizat fără eroare. Atunci când un simbol slab nedefinit este legat și simbolul nu este definit, valoarea simbolului slab devine zero fără nici o eroare.

W

Simbolul este un simbol slab care nu a fost specificat ca un simbol obiect slab. Atunci când un simbol slab definit este legat de un simbol normal definit, simbolul definit normal este utilizat fără eroare. Atunci când un simbol slab nedefinit este legat și simbolul nu este definit, valoarea simbolului slab devine zero fără nici o eroare.

-

Simbolul este un simbol al strobilor într-un fișier a.out object. În acest caz, următoarele valori tipărite sunt celelalte câmpuri, câmpurile din stânga și tipul de stab. Stabile simboluri sunt utilizate pentru a deține informații de depanare.

?

Tipul de simbol este necunoscut sau specific format de fișier obiect.

*

Numele simbolului.

OPȚIUNI

Formele lungi și scurte de opțiuni, prezentate aici ca alternative, sunt echivalente.

-A

o-

--print-file-name

Precede fiecare simbol prin numele fișierului de intrare (sau membru de arhivă) în care a fost găsit, mai degrabă decât identificarea fișierului de intrare o singură dată, înainte de toate simbolurile sale.

-A

--debug-Syms

Afișează toate simbolurile, chiar și simbolurile de depanare; în mod normal acestea nu sunt enumerate.

-B

Același lucru ca și --format = bsd (pentru compatibilitatea cu MIPS nm ).

-C

--demangle [= stil ]

Decodează ( denaturează ) numele de simboluri de nivel inferior în nume de nivel de utilizator. Pe lângă eliminarea oricărei subliniere inițială prefixată de sistem, acest lucru face ca numele funcțiilor C ++ să fie citite. Diferitele compilatoare au diferite stiluri de mangling. Argumentul de stil de demutare opțional poate fi folosit pentru a alege un stil de demagnetizare adecvat pentru compilatorul dvs.

--no-demangle

Nu desfaceți numele simbolurilor de nivel inferior. Acesta este setarea implicită.

-D

--dinamic

Afișați simbolurile dinamice mai degrabă decât simbolurile normale. Acest lucru are sens numai pentru obiectele dinamice, cum ar fi anumite tipuri de biblioteci partajate.

-f format

--format = format

Utilizați formatul formatului de ieșire, care poate fi "bsd", "sysv" sau "posix". Implicit este "bsd". Numai primul caracter al formatului este semnificativ; poate fi fie superioară, fie mică.

-g

--extern numai

Afișați numai simboluri externe.

-l

--line-numere

Pentru fiecare simbol, utilizați informații de depanare pentru a încerca să găsiți un nume de fișier și un număr de linie. Pentru un simbol definit, căutați numărul liniei adresei simbolului. Pentru un simbol nedefinit, căutați numărul liniei unei intrări de relocare care se referă la simbol. Dacă găsiți informații privind numărul de linie, imprimați-l după celelalte informații despre simbol.

-N

-v

--numeric-sortare

Sortați simbolurile numeric după adresele lor, mai degrabă decât alfabetic după numele lor.

-p

--no-sortare

Nu vă faceți griji pentru a sorta simbolurile în orice ordine; tipăriți-le în ordinea întâlnită.

-P

--portability

Utilizați formatul de ieșire standard POSIX.2 în locul formatului implicit. Echivalent cu -f posix .

-S

--print-size

Imprimă dimensiunea simbolurilor definite pentru formatul de ieșire "bsd".

-s

--print-armap

Când listați simbolurile din membrii arhivelor, includeți indexul: o mapare (stocată în arhivă de ar sau ranlib ) din care module conțin definiții pentru care nume.

-r

--reverse-sortare

Reveniți ordinea de sortare (numerică sau alfabetică); să vină ultimul.

--size-sortare

Sortați simbolurile după dimensiune. Dimensiunea este calculată ca diferența dintre valoarea simbolului și valoarea simbolului cu următoarea valoare mai mare. Dimensiunea simbolului este imprimată mai degrabă decât valoarea.

-t radix

--radix = radix

Utilizați radix ca radix pentru tipărirea valorilor simbolurilor. Trebuie să fie d pentru zecimal, o pentru octal sau x pentru hexazecimal.

- target = bfdname

Specificați un format de cod obiect diferit de formatul implicit al sistemului.

-u

--undefined numai

Afișați numai simbolurile nedefinite (cele exterioare fiecărui fișier obiect).

--defined numai

Afișați numai simboluri definite pentru fiecare fișier obiect.

-V

--versiune

Afișați numărul versiunii de nm și ieșirea.

-X

Această opțiune este ignorată pentru compatibilitatea cu versiunea AIX a nm . Este nevoie de un parametru care trebuie să fie șirul 32_64 . Modul implicit al AIX nm corespunde cu -X 32 , care nu este suportat de GNU nm .

--Ajutor

Arătați un rezumat al opțiunilor la nm și ieșire.

VEZI SI

ar (1), objdump (1), ranlib (1) și intrările de informații pentru binutils .

Important: Utilizați comanda om ( % man ) pentru a vedea cum se utilizează o comandă pe computerul dvs. particular.