Skip to main content

Linux - Unix-opdracht: nm

How to Use Which Command in Linux Terminal | Basic Linux Commands | Which Command in Linux (Mei 2024)

How to Use Which Command in Linux Terminal | Basic Linux Commands | Which Command in Linux (Mei 2024)
Anonim

nm - geef symbolen van objectbestanden weer

KORTE INHOUD

nm -een|--debug-syms -g|--extern-only -B -C|--demangle= stijl -D|--dynamisch -S|--print-size -s|--print-armap -EEN|-O|--print-file-naam -n|-v|--numeric-sort -p|--no-sort -r|--reverse-sort --size-sort -u|--undefined-only -t radix |--radix = radix -P|--draagbaarheid --target = bfdname -f formaat |--format = formaat --defined-only l|--lijn nummers --no-demangle -V|--versie -X 32_64 --helpen objFile …

OMSCHRIJVING

GNUnm geeft de symbolen van objectbestanden weer objFile …. Als er geen objectbestanden als argumenten worden weergegeven,nm neemt het bestand aan a.out .

Voor elk symbool,nm shows:

*

De symboolwaarde, in de radix geselecteerd door opties (zie hieronder) of standaard hexadecimaal.

*

Het symbooltype. Ten minste de volgende soorten worden gebruikt; andere zijn ook afhankelijk van het bestandsformaat van het object. In kleine letters is het symbool lokaal; in hoofdletters is het symbool globaal (extern).

EEN

De waarde van het symbool is absoluut en zal niet worden gewijzigd door dit verder te linken.

B

Het symbool bevindt zich in de niet-geïnitialiseerde gegevenssectie (BSS genaamd).

C

Het symbool is gebruikelijk. Veel voorkomende symbolen zijn niet-geïnitialiseerde gegevens. Bij het koppelen kunnen meerdere algemene symbolen met dezelfde naam worden weergegeven. Als het symbool overal wordt gedefinieerd, worden de algemene symbolen behandeld als ongedefinieerde verwijzingen.

D

Het symbool bevindt zich in de sectie met geïnitialiseerde gegevens.

G

Het symbool bevindt zich in een geïnitialiseerde gegevenssectie voor kleine objecten. Sommige bestandsindelingen van objecten maken een efficiëntere toegang tot kleine gegevensobjecten mogelijk, zoals een globale int-variabele in tegenstelling tot een grote globale array.

ik

Het symbool is een indirecte verwijzing naar een ander symbool. Dit is een GNU-uitbreiding naar het a.out-formaat van het objectbestand dat zelden wordt gebruikt.

N

Het symbool is een foutopsporingssymbool.

R

Het symbool bevindt zich in een alleen-lezen gegevenssectie.

S

Het symbool bevindt zich in een niet-geïnitialiseerde gegevenssectie voor kleine objecten.

T

Het symbool staat in de tekst (code) sectie.

U

Het symbool is niet gedefinieerd.

V

Een symbool is een zwak voorwerp. Wanneer een zwak gedefinieerd symbool is gekoppeld aan een normaal gedefinieerd symbool, wordt het normale gedefinieerde symbool zonder fout gebruikt. Wanneer een zwak ongedefinieerd symbool is gekoppeld en het symbool niet is gedefinieerd, wordt de waarde van het zwakke symbool nul zonder fouten.

w

Het symbool is een zwak symbool dat niet specifiek is gemarkeerd als een zwak voorwerpsymbool. Wanneer een zwak gedefinieerd symbool is gekoppeld aan een normaal gedefinieerd symbool, wordt het normale gedefinieerde symbool zonder fout gebruikt. Wanneer een zwak ongedefinieerd symbool is gekoppeld en het symbool niet is gedefinieerd, wordt de waarde van het zwakke symbool nul zonder fouten.

-

Het symbool is een steek-symbool in een a.out-objectbestand. In dit geval zijn de volgende afgedrukte waarden de steken andere velden, het veld voor het ontslaan van steken en het steektype. Stabs-symbolen worden gebruikt om foutopsporingsinformatie vast te houden.

?

Het symbooltype is onbekend of specifiek voor de bestandsindeling.

*

De symboolnaam.

OPTIES

De lange en korte vormen van opties, hier weergegeven als alternatieven, zijn equivalent.

-EEN

-O

--print-file-naam

Geef elk symbool vooraf door de naam van het invoerbestand (of archieflid) waarin het is gevonden, in plaats van het invoerbestand slechts één keer te identificeren vóór alle bijbehorende symbolen.

-een

--debug-syms

Toon alle symbolen, zelfs alleen-symbool-symbolen; normaal worden deze niet vermeld.

-B

Hetzelfde als--format = bsd (voor compatibiliteit met de MIPSnm).

-C

--demangle = stijl

Decode ( demangle ) symboolnamen op laag niveau in namen op gebruikersniveau. Naast het verwijderen van een eerste onderstrepingsteken voorafgegaan door het systeem, maakt dit C + + functienamen leesbaar. Verschillende compilers hebben verschillende mangling-stijlen. Het optionele argument demiling-stijl kan worden gebruikt om een ​​geschikte demangling-stijl voor uw compiler te kiezen.

--no-demangle

Demonteer laagbenige symboolnamen niet. Dit is de standaard.

-D

--dynamisch

Geef de dynamische symbolen weer in plaats van de normale symbolen. Dit is alleen zinvol voor dynamische objecten, zoals bepaalde typen gedeelde bibliotheken.

-f formaat

--format = formaat

Gebruik het uitvoerformaat formaat , wat "bsd", "sysv" of "posix" kan zijn. De standaardinstelling is "bsd". Alleen het eerste personage van formaat is belangrijk; het kan hoofdletters of kleine letters zijn.

-g

--extern-only

Toon alleen externe symbolen.

l

--lijn nummers

Gebruik voor elk symbool foutopsporingsinformatie om een ​​bestandsnaam en regelnummer te vinden. Zoek voor een gedefinieerd symbool het regelnummer van het adres van het symbool. Zoek voor een ongedefinieerd symbool het regelnummer van een relocation-item dat verwijst naar het symbool. Als regelnummerinformatie kan worden gevonden, drukt u deze af na de andere symboolinformatie.

-n

-v

--numeric-sort

Sorteer symbolen numeriek op hun adressen in plaats van alfabetisch op hun naam.

-p

--no-sort

Doe geen moeite om de symbolen in willekeurige volgorde te sorteren; print ze in de volgorde waarin ze zijn tegengekomen.

-P

--draagbaarheid

Gebruik het standaarduitvoerformaat POSIX.2 in plaats van het standaardformaat. Gelijk aan-f posix.

-S

--print-size

Afdrukformaat van gedefinieerde symbolen voor het uitvoerformaat "bsd".

-s

--print-armap

Neem bij het noteren van symbolen uit archiefleden de index op: een toewijzing (opgeslagen in het archief doorar ofranlib) van welke modules definities bevatten voor welke namen.

-r

--reverse-sort

De volgorde van het sorteren omdraaien (numeriek of alfabetisch); laat de laatsten eerst komen.

--size-sort

Sorteer symbolen op maat. De grootte wordt berekend als het verschil tussen de waarde van het symbool en de waarde van het symbool met de volgende hogere waarde. De grootte van het symbool wordt afgedrukt in plaats van de waarde.

-t radix

--radix = radix

Gebruik radix als de radix voor het afdrukken van de symboolwaarden. Het moet zijnd voor decimaal,O voor octaal, ofX voor hexadecimaal.

--target = bfdname

Geef een ander objectcodeformaat op dan de standaardindeling van uw systeem.

-u

--undefined-only

Geef alleen niet-gedefinieerde symbolen weer (die extern zijn voor elk objectbestand).

--defined-only

Toon alleen gedefinieerde symbolen voor elk objectbestand.

-V

--versie

Toon het versienummer vannm en verlaat.

-X

Deze optie wordt genegeerd voor compatibiliteit met de AIX-versie vannm. Er is één parameter vereist die de tekenreeks moet zijn32_64. De standaardmodus van AIXnm komt overeen met-X 32, wat niet wordt ondersteund door GNUnm.

--helpen

Toon een samenvatting van de opties omnm en verlaat.

ZIE OOK

ar (1), objdump (1), ranlib (1) en de Info-items voor binutils .

Belangrijk: Gebruik de man commando ( % man ) om te zien hoe een opdracht wordt gebruikt op uw specifieke computer.