ADDR2LINE(1)

NOME
addr2line - converte gli indirizzi in nomi di file e numeri di riga.

SINTASSI
addr2line [-a|--addresses]
          [-b bfdname|--target=bfdname]
          [-C|--demangle[=style]]
          [-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 comportamento predefinito, 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
La forma lunga e breve delle opzioni, mostrate qui in alternativa, 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).

@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 verrà letteralmente, e non rimossa.

    Le opzioni nel 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
Le voci delle pagine info relative a binutils.

COPYRIGHT
Copyright (c) 1991-2014 Free Software Foundation, Inc.

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".

DIRITTI DI COPIA
Copyright (c) 1991-2013 Free Software Foundation, Inc.

Traduzione in italiano a cura di ILDP - Italian Linux Documentation Project http://www.pluto.it/ildp. Segnalare eventuali errori di traduzione a ildp@pluto.it

Questa è una traduzione non ufficiale in italiano dei permessi di copia riportati nella precedente sezione "COPYRIGHT". Non è una pubblicazione della Free Software Foundation, e non ha validità legale per i termini di distribuzione della documentazione; solo il testo originale inglese ha tale validità.

This is an unofficial translation into Italian of the above section "COPYRIGHT". It was not published by the Free Software Foundation, and does not legally state the distribution terms for this documentation; only the original English text does that.

È permesso copiare, distribuire e/o modificare questo documento seguendo i termini della GNU Free Documentation License (Licenza per documentazione libera GNU), 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 "GNU Free Documentation License" (Licenza per la documentazione libera GNU).