Skip to main content

Linux - Unix-Befehl: nm

Introduction to Linux and Basic Linux Commands for Beginners (April 2024)

Introduction to Linux and Basic Linux Commands for Beginners (April 2024)
Anonim

nm - Listensymbole aus Objektdateien

ZUSAMMENFASSUNG

nm -ein|--debug-syms -G|- nur -extern -B -C|- demangle= Stil -D|--dynamisch -S|--Druckgröße -s|--print-armap -EIN|-O|--print-Dateiname -n|-v|--numeric-sort -p|--nicht sortieren -r|--umgekehrte Sortierung --size-sort -u|--undefiniert-nur -t Radix |--radix = Radix -P|--Portabilität --target = bfdname -f Format |--format = Format - nur definiert -l|--Linien Nummern - no-demangle -V|--Ausführung -X 32_64 --Hilfe objfile …

BESCHREIBUNG

GNUnm listet die Symbole aus Objektdateien auf objfile …. Wenn keine Objektdateien als Argumente aufgeführt sind,nm nimmt die Datei an a.out .

Für jedes Symbolnm zeigt an:

*

Der Symbolwert in der durch Optionen ausgewählten Radix (siehe unten) oder standardmäßig hexadezimal.

*

Der Symboltyp. Zumindest die folgenden Typen werden verwendet; Andere hängen ebenfalls vom Objektdateiformat ab. Bei Kleinbuchstaben ist das Symbol lokal. Bei Großbuchstaben ist das Symbol global (extern).

EIN

Der Wert des Symbols ist absolut und wird durch weitere Verknüpfung nicht geändert.

B

Das Symbol befindet sich im Bereich der nicht initialisierten Daten (BSS).

C

Das Symbol ist üblich. Übliche Symbole sind nicht initialisierte Daten. Beim Verknüpfen können mehrere allgemeine Symbole mit demselben Namen angezeigt werden. Wenn das Symbol an einer beliebigen Stelle definiert ist, werden die allgemeinen Symbole als undefinierte Verweise behandelt.

D

Das Symbol befindet sich im initialisierten Datenbereich.

G

Das Symbol befindet sich in einem initialisierten Datenabschnitt für kleine Objekte. Einige Objektdateiformate ermöglichen einen effizienteren Zugriff auf kleine Datenobjekte, z. B. eine globale int-Variable im Gegensatz zu einem großen globalen Array.

ich

Das Symbol ist ein indirekter Verweis auf ein anderes Symbol. Dies ist eine GNU-Erweiterung auf das a.out-Objektdateiformat, das selten verwendet wird.

N

Das Symbol ist ein Debugging-Symbol.

R

Das Symbol befindet sich in einem schreibgeschützten Datenabschnitt.

S

Das Symbol befindet sich in einem nicht initialisierten Datenbereich für kleine Objekte.

T

Das Symbol befindet sich im Abschnitt Text (Code).

U

Das Symbol ist undefiniert.

V

Ein Symbol ist ein schwaches Objekt. Wenn ein schwach definiertes Symbol mit einem normal definierten Symbol verknüpft wird, wird das normal definierte Symbol fehlerfrei verwendet. Wenn ein schwaches undefiniertes Symbol verknüpft ist und das Symbol nicht definiert ist, wird der Wert des schwachen Symbols ohne Fehler zu Null.

W

Das Symbol ist ein schwaches Symbol, das nicht speziell als schwaches Objektsymbol gekennzeichnet wurde. Wenn ein schwach definiertes Symbol mit einem normal definierten Symbol verknüpft wird, wird das normal definierte Symbol fehlerfrei verwendet. Wenn ein schwaches undefiniertes Symbol verknüpft ist und das Symbol nicht definiert ist, wird der Wert des schwachen Symbols ohne Fehler zu Null.

-

Das Symbol ist ein Stub-Symbol in einer a.out-Objektdatei. In diesem Fall werden als nächste Werte die anderen Felder, das Abwärtsfeld und der Stichtyp gedruckt. Stabs-Symbole werden zum Speichern von Debugging-Informationen verwendet.

?

Der Symboltyp ist unbekannt oder das Format der Objektdatei ist spezifisch.

*

Der Symbolname

OPTIONEN

Die Lang- und Kurzformen der Optionen, hier als Alternativen dargestellt, sind gleichwertig.

-EIN

-O

--print-Dateiname

Stellen Sie jedem Symbol den Namen der Eingabedatei (oder des Archivmitglieds) voran, in der es gefunden wurde, anstatt die Eingabedatei nur einmal vor allen Symbolen zu identifizieren.

-ein

--debug-syms

Alle Symbole anzeigen, auch nur Debugger-Symbole. Normalerweise sind diese nicht aufgeführt.

-B

Das Gleiche wie--format = bsd (zur Kompatibilität mit dem MIPSnm).

-C

--demangle = Stil

Decodieren ( demangle ) Low-Level-Symbolnamen in Namen auf Benutzerebene. Dadurch werden nicht nur anfängliche Unterstriche des Systems entfernt, sondern auch die Namen der C ++ - Funktionen lesbar. Verschiedene Compiler haben unterschiedliche Mangle-Stile. Mit dem optionalen Entgleisungsstil-Argument kann ein geeigneter Entgleisungsstil für Ihren Compiler ausgewählt werden.

- no-demangle

Niedrige Symbolnamen nicht demangeln. Dies ist die Standardeinstellung.

-D

--dynamisch

Zeigen Sie die dynamischen Symbole anstelle der normalen Symbole an. Dies ist nur für dynamische Objekte von Bedeutung, z. B. für bestimmte Typen von gemeinsam genutzten Bibliotheken.

-f Format

--format = Format

Verwenden Sie das Ausgabeformat Format , was "bsd", "sysv" oder "posix" sein kann. Der Standardwert ist "bsd". Nur das erste Zeichen von Format ist wichtig; Es kann entweder Groß- oder Kleinschreibung sein.

-G

- nur -extern

Nur externe Symbole anzeigen.

-l

--Linien Nummern

Verwenden Sie für jedes Symbol Debugging-Informationen, um einen Dateinamen und eine Zeilennummer zu finden. Suchen Sie nach einem definierten Symbol nach der Zeilennummer der Adresse des Symbols. Suchen Sie für ein undefiniertes Symbol nach der Zeilennummer eines Umsatzeintrags, der auf das Symbol verweist. Wenn Zeilennummerninformationen gefunden werden können, drucken Sie sie nach den anderen Symbolinformationen.

-n

-v

--numeric-sort

Sortieren Sie Symbole numerisch nach ihren Adressen und nicht alphabetisch nach Namen.

-p

--nicht sortieren

Bemühen Sie sich nicht, die Symbole in beliebiger Reihenfolge zu sortieren. Drucken Sie sie in der Reihenfolge, in der Sie sie gefunden haben.

-P

--Portabilität

Verwenden Sie anstelle des Standardformats das POSIX.2-Standardausgabeformat. Gleichwertig-f posix.

-S

--Druckgröße

Druckgröße definierter Symbole für das Ausgabeformat "bsd".

-s

--print-armap

Fügen Sie beim Auflisten von Symbolen von Archivmitgliedern den Index ein: eine Zuordnung (im Archiv gespeichert durch)ar oderRanlib) welche Module Definitionen für welche Namen enthalten.

-r

--umgekehrte Sortierung

Die Reihenfolge der Sortierung umkehren (numerisch oder alphabetisch); Lass das Letzte zuerst kommen.

--size-sort

Symbole nach Größe sortieren. Die Größe wird als Differenz zwischen dem Wert des Symbols und dem Wert des Symbols mit dem nächst höheren Wert berechnet. Die Größe des Symbols wird anstelle des Werts gedruckt.

-t Radix

--radix = Radix

Benutzen Radix als Basis für das Drucken der Symbolwerte. Es muss seind für dezimal,O für oktal oderx für hexadezimal.

--target = bfdname

Geben Sie ein anderes Objektcode-Format als das Standardformat Ihres Systems an.

-u

--undefiniert-nur

Nur undefinierte Symbole anzeigen (die außerhalb jeder Objektdatei).

- nur definiert

Zeigt nur definierte Symbole für jede Objektdatei an.

-V

--Ausführung

Zeigt die Versionsnummer von annm und verlassen.

-X

Diese Option wird aus Gründen der Kompatibilität mit der AIX-Version von ignoriertnm. Es braucht einen Parameter, der die Zeichenfolge sein muss32_64. Der Standardmodus von AIXnm entspricht-X 32, was von GNU nicht unterstützt wirdnm.

--Hilfe

Zeigen Sie eine Zusammenfassung der Optionen annm und verlassen.

SIEHE AUCH

ar (1), objdump (1), Ranlib (1) und die Info-Einträge für Binutils .

Wichtig: Verwenden Sie die Mann Befehl ( % Mann ), um zu sehen, wie ein Befehl auf Ihrem Computer verwendet wird.