ADDR2LINE(1) Strumenti di sviluppo GNU ADDR2LINE(1)

addr2line - convert addresses or symbol+offset into file names and line numbers

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 ...]

addr2line translates addresses or symbol+offset into file names and line numbers. Given an address or symbol+offset in an executable or an offset in a section of a relocatable object, it uses the debugging information to figure out which file name and line number are associated with it.

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.

In the first, hexadecimal addresses or symbol+offset are specified on the command line, and addr2line displays the file name and line number for each address.

In the second, addr2line reads hexadecimal addresses or symbol+offset from standard input, and prints the file name and line number for each address on standard output. In this mode, addr2line may be used in a pipe to convert dynamically chosen addresses.

The format of the output is FILENAME:LINENO. By default each input address generates one line of output.

Two options can generate additional lines before each FILENAME:LINENO line (in that order).

Se è usata l'opzione -a viene mostrata una riga con l'indirizzo in input.

If the -f option is used, then a line with the FUNCTIONNAME is displayed. This is the name of the function containing the address.

One option can generate additional lines after the FILENAME:LINENO line.

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.

When symbol+offset is used, +offset is optional, except when the symbol is ambigious with a hex number. The resolved symbols can be mangled or unmangled, except unmangled symbols with + are not allowed.

Le opzioni nei formati lungo e corto, qui mostrate come alternative, sono equivalenti.

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.
Specifica che il formato object-code per i file oggetto è bfdname.
Decode (demangle) low-level symbol names into user-level names. Besides removing any initial underscore prepended by the system, this makes C++ function names readable. Different compilers have different mangling styles. The optional demangling style argument can be used to choose an appropriate demangling style for your compiler.
Specifica il nome dell'eseguibile per il quale gli indirizzi devono essere tradotti. Il file predefinito è a.out.
Visualizza informazioni su nomi di funzioni e anche su file e numeri di riga.
Visuallizza solo la base di ciascun nome di file.
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".
Legge gli offset relativi alla sezione specificata anziché gli indirizzi assoluti.
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).
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.

I campi Info per binutils.

Copyright (c) 1991-2023 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).

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.

4 agosto 2023 binutils-2.41.0