Provided by: manpages-it_4.13-4_all 

NOME
addr2line - converte gli indirizzi in nomi di file e numeri di riga.
SINTASSI
addr2line [-a|--addresses]
[-b bfdname|--target=bfdname]
[-C|--demangle[=style]]
[-r|--no-recurse-limit]
[-R|--recurse-limit]
[-e filename|--exe=filename]
[-f|--functions] [-s|--basename]
[-i|--inlines]
[-p|--pretty-print]
[-j|--section=name]
[-H|--help] [-V|--version]
[addr addr ...]
DESCRIZIONE
addr2line traduce indirizzi in nomi di file e numeri di riga. Dato un indirizzo in un eseguibile o un
offset in una sezione di un oggetto rilocabile, esso usa l'informazione di debugging per capire quale
nome di file e numero di riga sono associati e un dato indirizzo.
L'eseguibile o l'oggetto rilocabile da usare è specificato con l'opzione -e. Quello predefinito è il file
a.out. La sezione nell'oggetto rilocabile da usare è specificata con l'opzione -j.
addr2line ha due modalità operative.
Nella prima sulla riga di comando sono specificati indirizzi esadecimali, e addr2line mostra il nome del
file e il numero di riga per ciascun indirizzo.
Nella seconda addr2line legge indirizzi esadecimali dallo standard input, e stampa nome file e numero di
riga per ciascun indirizzo sullo standard output. In questa modalità addr2line può essere usato in una
pipe per convertire indirizzi scelti dinamicamente.
Il formato dell'output è FILENAME:LINENO. Come comportamentopredefinito, ogni indirizzo in input genera
una riga di output.
Due opzioni possono generare ulteriori righe prima di ogni riga FILENAME:LINENO (in quest'ordine).
Se è usata l'opzione -a viene mostrata una riga con l'indirizzo in input.
Se è usata l'opzione -f, viene mostrata una riga con il FUNCTIONNAME, che è il nome della funzione
contenente l'indirizzo.
Un'opzione può generare ulteriori righe dopo la riga FILENAME:LINENO.
Se è usata l'opzione -i e il codice al dato indirizzo è presente lì a causa dell'inlining eseguito dal
compilatore, ulteriori righe verranno mostrate dopo. Una o due righe supplementari (se è usata l'opzione
-f) sono mostrate per ogni funzione sottoposta a inlining.
In alternativa, se è usata l'opzione -p, ogni indirizzo di input genera su un'unica lunga riga di output
contenente l'indirizzo, il nome della funzione, il nome del file e il numero di riga. Se è stata usata
anche l'opzione -i ogni funzione sottoposta a inlining verrà mostrata nello stesso modo, ma su righe
separate, con aggiunto il prefisso (inlined by).
Se nome file o nome funzione non possono essere determinati, addr2line stamperà due punti interrogativi
al loro posto. Se il numero di riga non può essere determinato, addr2line stamperà 0.
OPZIONI
Le opzioni nei formati lungo e corto, qui mostrate come alternative, sono equivalenti.
-a
--addresses
Mostra l'indirizzo prima delle informazioni su nome di funzione, file e numero di riga. L'indirizzo è
stampato con un prefisso 0x per essere identificato facilmente.
-b bfdname
--target=bfdname
Specifica che il formato object-code per i file oggetto è bfdname.
-C
--demangle[=style]
Decodifica (demangle) nomi di simboli a basso livello in nomi a livello utente. Oltre a rimuovere
ogni trattino basso iniziale aggiunto dal sistema, questo rende i nomi di funzione C++ leggibili.
Differenti compilatori hanno differenti stili di mangling. L'argomento opzionale di stile di
demangling può essere usato per scegliere uno stile di demangling appropriato per il proprio
compilatore.
-e filename
--exe=filename
Specifica il nome dell'eseguibile per il quale gli indirizzi devono essere tradotti. Il file
predefinito è a.out.
-f
--functions
Visualizza informazioni su nomi di funzioni e anche su file e numeri di riga.
-s
--basenames
Visuallizza solo la base di ciascun nome di file.
-i
--inlines
Se l'indirizzo appartiene a una funzione sottoposta a inlining, verrano stampate anche le
informazioni sul codice sorgente per tutte le espansioni inluse fino alla prima funzione non
sottoposta a espanzione inline. Per esempio, se "main" espande "callee1" che espande "callee2", e
l'indirizzo proviene da "callee2", verranno stampate anche le informazioni per "callee1" e "main".
-j
--section
Legge gli offset relativi alla sezione specificata anziché gli indirizzi assoluti.
-p
--pretty-print
Rende l'output più leggibile: ogni posizione è stampata su una riga. Se è specificata l'opzione -i,
le righe for all enclosing scopes sono precedute dal prefisso (inlined by).
-r
-R
--recurse-limit
--no-recurse-limit
--recursion-limit
--no-recursion-limit
Enables or disables a limit on the amount of recursion performed whilst demangling strings. Since the
name mangling formats allow for an infinite level of recursion it is possible to create strings whose
decoding will exhaust the amount of stack space available on the host machine, triggering a memory
fault. The limit tries to prevent this from happening by restricting recursion to 2048 levels of
nesting.
The default is for this limit to be enabled, but disabling it may be necessary in order to demangle
truly complicated names. Note however that if the recursion limit is disabled then stack exhaustion
is possible and any bug reports about such an event will be rejected.
L'opzione -r è un sinonimo dell'opzione --no-recurse-limit. L'opzione -R è un sinonimo dell'opzione
--recurse-limit.
Si noti che questa opzione ha effetto solo se è stata abilitata l'opzione --demangle.
@file
Legge le opzioni da riga di comando da file. Le opzioni lette sono inserite al posto dell'opzione
originale @file. Se file non esiste o non può essere letto, l'opzione sarà trattata letteralmente, e
non rimossa.
Le opzioni in file sono separate da spazi vuoti. Si può includere uno spazio vuoto in un'opzione
racchiudendo l'intera opzione fra apici, singoli o doppi. Può essere incluso qualsiasi carattere
(compresa la barra inversa) facendo precedere al carattere una barra inversa. Il file può esso stesso
contenere ulteriori opzioni @file; ciascuna di queste opzioni sarà elaborata ricorsivamente.
VEDERE ANCHE
I campi Info per binutils.
COPYRIGHT
Copyright (c) 1991-2022 Free Software Foundation, Inc.
È permesso copiare, distribuire e/o modificare questo documento nei termini della “Licenza per
documentazione libera GNU” (GNU Free Documentation License), versione 1.3 o ogni versione successiva
pubblicata dalla Free Software Foundation; senza sezioni non modificabili, senza testi di prima di
copertina e di quarta di copertina. Una copia della licenza è inclusa nella sezione intitolata “Licenza
per la documentazione libera GNU" ("GNU Free Documentation License").
TRADUZIONE
La traduzione italiana di questa pagina di manuale è stata creata da Giulio Daprelà <giulio@pluto.it> e
Marco Curreli <marcocurreli@tiscali.it>
Questa traduzione è documentazione libera; leggere la GNU General Public License Versione 3 o successiva
per le condizioni di copyright. Non ci assumiamo alcuna responsabilità.
Per segnalare errori nella traduzione di questa pagina di manuale inviare un messaggio a pluto-
ildp@lists.pluto.it.
binutils-2.38 18 febbraio 2022 ADDR2LINE(1)