Skip to main content

Linux - Comando Unix: nm

Troubleshooting using the ldd command (Potrebbe 2024)

Troubleshooting using the ldd command (Potrebbe 2024)
Anonim

nm: elenca i simboli dai file oggetto

SINOSSI

nm -un|--debug-Syms -g|--extern-only -B -C|--demangle= stile -D|--dinamico -S|--print-size -S|--print-armap -UN|-o|--print-file-name -n|-v|--numeric-Sort -p|--no-Sort -r|--reverse-Sort --size-Sort -u|--undefined-only -t radix |--radix = radix -P|--portability --target = bfdname -f formato |--format = formato --defined-only -l|--line-numeri --no-demangle -V|--versione -X 32_64 --Aiuto objfile …

DESCRIZIONE

GNUnm elenca i simboli dai file oggetto objfile …. Se nessun file oggetto è elencato come argomento,nm assume il file a.out .

Per ogni simbolo,nm Spettacoli:

*

Il valore del simbolo, nella radice selezionata dalle opzioni (vedi sotto), o esadecimale per impostazione predefinita.

*

Il tipo di simbolo. Almeno i seguenti tipi sono usati; altri sono, a seconda del formato del file oggetto. Se in minuscolo, il simbolo è locale; se maiuscolo, il simbolo è globale (esterno).

UN

Il valore del simbolo è assoluto e non verrà modificato da ulteriori collegamenti.

B

Il simbolo si trova nella sezione di dati non inizializzata (nota come BSS).

C

Il simbolo è comune. I simboli comuni sono dati non inizializzati. Durante il collegamento, possono apparire più simboli comuni con lo stesso nome. Se il simbolo è definito ovunque, i simboli comuni sono trattati come riferimenti non definiti.

D

Il simbolo si trova nella sezione dei dati inizializzati.

sol

Il simbolo si trova in una sezione di dati inizializzata per piccoli oggetti. Alcuni formati di file oggetto consentono un accesso più efficiente a oggetti di dati di piccole dimensioni, come una variabile globale int rispetto a un grande array globale.

io

Il simbolo è un riferimento indiretto a un altro simbolo. Questo è un GNUextension al formato di file oggetto a.out che viene usato raramente.

N

Il simbolo è un simbolo di debug.

R

Il simbolo si trova in una sezione dati di sola lettura.

S

Il simbolo si trova in una sezione di dati non inizializzata per piccoli oggetti.

T

Il simbolo è nella sezione di testo (codice).

U

Il simbolo non è definito.

V

Un simbolo è un oggetto debole. Quando un simbolo definito debole è collegato a un simbolo definito normale, il simbolo definito normale viene utilizzato senza errori. Quando un simbolo indefinito debole è collegato e il simbolo non è definito, il valore del simbolo debole diventa zero senza errori.

W

Il simbolo è un simbolo debole che non è stato specificamente etichettato come simbolo di oggetto debole. Quando un simbolo definito debole è collegato a un simbolo definito normale, il simbolo definito normale viene utilizzato senza errori. Quando un simbolo indefinito debole è collegato e il simbolo non è definito, il valore del simbolo debole diventa zero senza errori.

-

Il simbolo è un simbolo di pugni in un file oggetto a.out. In questo caso, i prossimi valori stampati sono gli altri campi di pugnalata, il campo di taglio di pugnalata e il tipo di pugnalata. I simboli Stabs vengono utilizzati per contenere le informazioni di debug.

?

Il tipo di simbolo è sconosciuto o il formato del file oggetto specifico.

*

Il nome del simbolo

OPZIONI

Le forme lunghe e brevi di opzioni, mostrate qui come alternative, sono equivalenti.

-UN

-o

--print-file-name

Precedere ciascun simbolo in base al nome del file di input (o membro di archivio) in cui è stato trovato, anziché identificare il file di input una sola volta, prima di tutti i relativi simboli.

-un

--debug-Syms

Mostra tutti i simboli, anche i simboli di debugger; normalmente questi non sono elencati

-B

Lo stesso di--format = bsd (per compatibilità con MIPSnm).

-C

--demangle = stile

Decodifica ( demangle ) nomi di simboli di basso livello in nomi a livello utente. Oltre a rimuovere qualsiasi carattere di sottolineatura iniziale anteposto al sistema, questo rende leggibili i nomi di funzione C ++. Diversi compilatori hanno stili di mangling diversi. L'argomento facoltativo di stile demangling può essere utilizzato per scegliere uno stile di demangling appropriato per il compilatore.

--no-demangle

Non demilitare nomi di simboli di basso livello. Questo è l'impostazione predefinita.

-D

--dinamico

Mostra i simboli dinamici piuttosto che i simboli normali. Questo è significativo solo per oggetti dinamici, come certi tipi di librerie condivise.

-f formato

--format = formato

Usa il formato di output formato , che può essere "bsd", "sysv" o "posix". L'impostazione predefinita è "bsd". Solo il primo personaggio di formato è significativo; può essere maiuscolo o minuscolo.

-g

--extern-only

Mostra solo simboli esterni.

-l

--line-numeri

Per ciascun simbolo, utilizzare le informazioni di debug per cercare di trovare un nome file e un numero di riga. Per un simbolo definito, cercare il numero di riga dell'indirizzo del simbolo. Per un simbolo non definito, cercare il numero di riga di una voce di rilocazione che fa riferimento al simbolo. Se è possibile trovare informazioni sul numero di riga, stamparlo dopo le altre informazioni sul simbolo.

-n

-v

--numeric-Sort

Ordina i simboli numericamente in base ai loro indirizzi, anziché alfabeticamente in base al loro nome.

-p

--no-Sort

Non preoccuparti di ordinare i simboli in qualsiasi ordine; stampali nell'ordine incontrato.

-P

--portability

Utilizzare il formato di output standard POSIX.2 invece del formato predefinito. Equivalente a-f posix.

-S

--print-size

Stampa la dimensione dei simboli definiti per il formato di output "bsd".

-S

--print-armap

Quando si elencano i simboli dai membri dell'archivio, includere l'indice: una mappatura (memorizzata nell'archivio diar oranlib) di cui i moduli contengono definizioni per i quali nomi.

-r

--reverse-Sort

Invertire l'ordine dell'ordinamento (sia numerico che alfabetico); lascia che l'ultimo venga prima.

--size-Sort

Ordina i simboli per dimensione. La dimensione viene calcolata come differenza tra il valore del simbolo e il valore del simbolo con il valore immediatamente successivo. La dimensione del simbolo viene stampata, piuttosto che il valore.

-t radix

--radix = radix

Uso radix come la radice per la stampa dei valori dei simboli. Deve essered per decimale,o per ottale, oX per esadecimale.

--target = bfdname

Specificare un formato di codice oggetto diverso dal formato predefinito del sistema.

-u

--undefined-only

Mostra solo simboli non definiti (quelli esterni a ciascun file oggetto).

--defined-only

Mostra solo simboli definiti per ciascun file oggetto.

-V

--versione

Mostra il numero di versione dinm e uscita.

-X

Questa opzione è ignorata per compatibilità con la versione AIX dinm. Prende un parametro che deve essere la stringa32_64. La modalità predefinita di AIXnm corrisponde a-X 32, che non è supportato da GNUnm.

--Aiuto

Mostra un riepilogo delle opzioni anm e uscita.

GUARDA ANCHE

ar (1), objdump (1), ranlib (1) e le voci Info per binutils .

Importante: Utilizzare il uomo comando ( % uomo ) per vedere come viene utilizzato un comando sul tuo computer specifico.