Skip to main content

Linux - Unix-kommando: nm

How to Use Which Command in Linux Terminal | Basic Linux Commands | Which Command in Linux (Maj 2025)

How to Use Which Command in Linux Terminal | Basic Linux Commands | Which Command in Linux (Maj 2025)
Anonim

nm - lista symboler från objektfiler

SYNOPSIS

nm -en|--debug-syms -g|-Bara --extern -B -C|--demangle= stil -D|--dynamisk -S|--print-storlek -s|--print-armap -EN|-o|--print-file-name -n|-v|--numeric-sort -p|--no-sort -r|--reverse-sort --size-sort -u|-Bara --undefined -t radix |--radix = radix -P|--portability --target = bfdname -f formatera |--format = formatera -Bara --defined -l|--line-nummer --no-demangle -V|--version -X 32_64 --hjälp objfile …

BESKRIVNING

GNUnm listar symbolerna från objektfiler objfile …. Om inga objektfiler listas som argument,nm antar filen a.out .

För varje symbol,nm visar:

*

Symbolvärdet, i radix som valts av alternativ (se nedan), eller hexadecimala som standard.

*

Symboltypen. Åtminstone används följande typer; andra är också beroende på objektfilformatet. Om små bokstäver är symbolen lokal; Om versaler är symbolen global (extern).

en

Symbolens värde är absolut och kommer inte att ändras genom att ytterligare länkas.

B

Symbolen finns i den uninitialiserade datasektionen (känd som BSS).

C

Symbolen är vanlig. Vanliga symboler är oinitierade data. Vid länkning kan flera gemensamma symboler visas med samma namn. Om symbolen definieras var som helst behandlas de gemensamma symbolerna som odefinierade referenser.

D

Symbolen finns i den initialiserade datasektionen.

G

Symbolen finns i en initialiserad datasektion för små objekt. Vissa objektfilformat möjliggör effektivare åtkomst till små dataobjekt, till exempel en global int-variabel i motsats till en stor global array.

jag

Symbolen är en indirekt hänvisning till en annan symbol. Detta är en GNUextension till a.out-objektfilformatet som sällan används.

N

Symbolen är en felsökningssymbol.

R

Symbolen finns i en skrivskyddad datasektion.

S

Symbolen finns i en uninitialiserad datasektion för små objekt.

T

Symbolen finns i texten (kod) avsnittet.

U

Symbolen är odefinierad.

V

En symbol är ett svagt objekt. När en svag definierad symbol är kopplad till en normal definierad symbol används den normala definierade symbolen utan något fel. När en svag odefinierad symbol är länkad och symbolen inte definieras blir värdet på den svaga symbolen noll utan något fel.

W

Symbolen är en svag symbol som inte har tagits specifikt som en svag objektsymbol. När en svag definierad symbol är kopplad till en normal definierad symbol används den normala definierade symbolen utan något fel. När en svag odefinierad symbol är länkad och symbolen inte definieras blir värdet på den svaga symbolen noll utan något fel.

-

Symbolen är en stabs-symbol i en a.out-objektfil. I det här fallet är de följande värdena som skrivs ut, de andra fälten i stabs, stabs desc fältet och stabstypen. Stabs symboler används för att hålla felsökning information.

?

Symboltypen är okänd, eller objektfilformat specifikt.

*

Symbolnamnet.

ALTERNATIV

De långa och korta alternativen, som visas här som alternativ, är likvärdiga.

-EN

-o

--print-file-name

Gå före varje symbol med namnet på inmatningsfilen (eller arkivmedlemmen) där den hittades, istället för att identifiera inmatningsfilen en gång, före alla dess symboler.

-en

--debug-syms

Visa alla symboler, även symboler för debugger-bara; Normalt är dessa inte listade.

-B

Samma som--format = bsd (för kompatibilitet med MIPSnm).

-C

--demangle = stil

Avkoda ( demangle ) Symboler med låg nivå på namnen på användarnivå. Förutom att ta bort eventuella initiala understreck som upptas av systemet, gör detta C ++-funktionsnamn läsbara. Olika kompilatörer har olika manglingstilar. Det valfria demangling stil argumentet kan användas för att välja en lämplig demangling stil för din kompilator.

--no-demangle

Demangla inte symboler med låg nivå. Detta är standardvärdet.

-D

--dynamisk

Visa de dynamiska symbolerna istället för de normala symbolerna. Detta är endast meningsfullt för dynamiska objekt, till exempel vissa typer av delade bibliotek.

-f formatera

--format = formatera

Använd utmatningsformatet formatera , som kan vara "bsd", "sysv" eller "posix". Standard är "bsd". Endast den första bokstaven av formatera är signifikant; det kan vara antingen övre eller små bokstäver.

-g

-Bara --extern

Visa bara externa symboler.

-l

--line-nummer

För varje symbol använder du felsökningsinformation för att försöka hitta ett filnamn och radnummer. För en definierad symbol, leta efter radnummer för symbolens adress. För en odefinierad symbol, leta efter radnummer för en flyttningsinmatning som hänvisar till symbolen. Om radenummerinformation finns kan du skriva ut den efter den andra symbolinformationen.

-n

-v

--numeric-sort

Sortera symboler numeriskt genom sina adresser, snarare än alfabetiskt med deras namn.

-p

--no-sort

Stör inte att sortera symbolerna i någon ordning; skriva ut dem i den uppkomna ordern.

-P

--portability

Använd standardutmatningsformatet POSIX.2 istället för standardformatet. Ekvivalent med-f posix.

-S

--print-storlek

Utskriftsstorlek för definierade symboler för "bsd" utgångsformat.

-s

--print-armap

När du listar symboler från arkivmedlemmar, inkludera indexet: en kartläggning (lagrad i arkivet avar ellerranlib) vilka moduler innehåller definitioner för vilka namn.

-r

--reverse-sort

Omvänd sorteringsordning (antingen numerisk eller alfabetisk); låt den sista komma först.

--size-sort

Sortera symboler efter storlek. Storleken beräknas som skillnaden mellan symbolens värde och symbolens värde med nästa högre värde. Symbolens storlek skrivs ut, snarare än värdet.

-t radix

--radix = radix

Använda sig av radix som radix för att skriva ut symbolvärdena. Den måste varad för decimal,o för oktal ellerx för hexadecimal.

--target = bfdname

Ange ett objektkodformat annat än systemets standardformat.

-u

-Bara --undefined

Visa bara odefinierade symboler (de som är externa för varje objektfil).

-Bara --defined

Visa bara definierade symboler för varje objektfil.

-V

--version

Visa versionsnummer förnm och avsluta.

-X

Det här alternativet ignoreras för kompatibilitet med AIX-versionen avnm. Det tar en parameter som måste vara strängen32_64. Standardläget för AIXnm motsvarar-X 32, som inte stöds av GNUnm.

--hjälp

Visa en sammanfattning av alternativen tillnm och avsluta.

SE ÄVEN

ar (1), objdump (1), ranlib (1) och Info-posterna för binutils .

Viktig: Använd man kommando ( % man ) för att se hur ett kommando används på din dator.