ADDR2LINE(1) Instrumente pentru dezvoltare(programare) GNU ADDR2LINE(1)

addr2line - convertește adresele sau simbol+poziție în nume de fișier și numere de linie

addr2line [-a|--addresses]
[-b nume-bfd|--target=nume-bfd]
[-C|--demangle[=stil]]
[-r|--no-recurse-limit]
[-R|--recurse-limit]
[-e nume-fișier|--exe=nume-fișier]
[-f|--functions] [-s|--basename]
[-i|--inlines]
[-p|--pretty-print]
[-j|--section=nume]
[-H|--help] [-V|--version]
[adresă adresă ...]

addr2line convertește adresele sau simbol+poziție în nume de fișier și numere de linie. Având în vedere o adresă sau un simbol+poziție dintr-un executabil sau o poziție dintr-o secțiune a unui obiect realocabil, utilizează informațiile de depanare pentru a afla ce nume de fișier și ce număr de linie sunt asociate cu acesta.

Obiectul executabil sau realocabil care trebuie utilizat este specificat cu opțiunea -e. Valoarea implicită este fișierul a.out. Secțiunea din obiectul realocabil care urmează să fie utilizată este specificată cu opțiunea -j.

addr2line are două moduri de operare.

În primul caz, adresele hexazecimale sau simbol+poziție sunt specificate în linia de comandă, iar addr2line afișează numele fișierului și numărul liniei pentru fiecare adresă.

În al doilea caz, addr2line citește adresele hexazecimale sau simbol+poziție de la intrarea standard și imprimă numele fișierului și numărul de linie pentru fiecare adresă la ieșirea standard. În acest mod, addr2line poate fi utilizat într-o țeavă pentru a converti adrese alese în mod dinamic.

Formatul de ieșire este NUME_FIȘIER:NUMĂR_LINIE. În mod implicit, fiecare adresă de intrare generează o linie de ieșire.

Două opțiuni pot genera linii suplimentare înainte de fiecare linie NUME_FIȘIER:NUMĂR_LINIE (în această ordine).

Dacă se utilizează opțiunea -a, se afișează o linie cu adresa de intrare.

Dacă se utilizează opțiunea -f, atunci se afișează o linie cu NUME_FUNCȚIE. Acesta este numele funcției care conține adresa.

O opțiune poate genera linii suplimentare după linia NUME_FIȘIER:NUMĂR_LINIE.

În cazul în care se utilizează opțiunea -i și codul de la adresa dată este prezent acolo din cauza expansiunii în linie „inlining ” de către compilator, atunci sunt afișate ulterior linii suplimentare. Una sau două linii suplimentare (în cazul în care se utilizează opțiunea -f) sunt afișate pentru fiecare funcție expandată în linie „inlined”.

Alternativ, dacă se utilizează opțiunea -p, fiecare adresă de intrare generează o singură linie de ieșire lungă, care conține adresa, numele funcției, numele fișierului și numărul liniei. În cazul în care a fost utilizată și opțiunea -i, toate funcțiile expandate în linie „inlined” vor fi afișate în același mod, dar pe linii separate și precedate de textul (inlined by).

În cazul în care numele fișierului sau numele funcției nu poate fi determinat, addr2line va imprima două semne de întrebare în locul lor. În cazul în care numărul liniei nu poate fi determinat, addr2line va imprima 0.

Atunci când se utilizează simbol+poziție, +poziție este opțională, cu excepția cazului în care simbolul este ambiguu cu un număr hexazecimal. Simbolurile rezolvate pot fi amestecate sau neamestecate, cu excepția simbolurilor neamestecate cu +, care nu sunt permise.

Forma lungă și forma scurtă a opțiunilor, prezentate aici ca alternative, sunt echivalente.

Afișează adresa înainte de numele funcției, informații despre fișier și numărul de linie. Adresa este imprimată cu un prefix 0x pentru a o identifica cu ușurință.
Specifică faptul că formatul codului obiect pentru fișierele obiect este nume-bfd.
Decodificarea (demangle) numelor de simboluri de nivel scăzut în nume de nivel utilizator. În afară de eliminarea oricărei sublinieri inițiale adăugate de sistem, acest lucru face ca numele funcțiilor C++ să fie lizibile. Compilatoare diferite au stiluri diferite de decodificare. Argumentul opțional „demangling style” poate fi utilizat pentru a alege un stil de decodificare adecvat pentru compilatorul dumneavoastră.
Specifică numele executabilului pentru care trebuie convertite adresele. Fișierul implicit este a.out.
Afișează numele funcțiilor, precum și informații despre fișier și numărul de linie.
Afișează numai baza fiecărui nume de fișier.
În cazul în care adresa aparține unei funcții care a fost expandată în linie „inlined”, vor fi imprimate, de asemenea, informațiile privind sursa pentru toate domeniile de cuprindere până la prima funcție ne-expandată în linie „non-inlined”. De exemplu, dacă „main” expandează în linie „callee1” care expandează în linie „callee2”, iar adresa este din „callee2”, informațiile sursă pentru „callee1” și „main” vor fi de asemenea imprimate.
Citește poziții relative la secțiunea specificată în loc de adrese absolute.
Face ca ieșirea să fie mai clară: fiecare locație este imprimată pe un singur rând. Dacă este specificată opțiunea -i, liniile pentru toate sferele care le cuprind sunt prefixate cu (inlined by).
Activează sau dezactivează limitarea numărului de recursivități efectuate în timpul decodificării șirurilor de caractere. Deoarece formatele de manipulare a numelor permit un nivel infinit de recursivitate, este posibil să se creeze șiruri a căror decodificare va epuiza spațiul de stivă disponibil pe calculatorul gazdă, declanșând o eroare de memorie. Limitarea încearcă să prevină acest lucru prin restricționarea recursivității la 2048 de niveluri de imbricare.

În mod implicit, această limită este activată, dar poate fi necesar să fie dezactivată pentru a dezmembra nume cu adevărat complicate. Rețineți totuși că, dacă limita de recursivitate este dezactivată, este posibilă epuizarea stivei și orice raport de eroare privind un astfel de eveniment va fi respins.

Opțiunea -r este un sinonim pentru opțiunea --no-recurse-limit. Opțiunea -R este sinonimă cu opțiunea --recurse-limit.

Rețineți că această opțiune este eficientă numai dacă opțiunea -C sau --demangle a fost activată.

@fișier
Citește opțiunile liniei de comandă din fișier. Opțiunile citite sunt inserate în locul opțiunii originale @fișier. Dacă fișier nu există sau nu poate fi citit, atunci opțiunea va fi tratată literal și nu va fi eliminată.

Opțiunile din fișier sunt separate prin spații albe. Un caracter de spațiere poate fi inclus într-o opțiune prin includerea întregii opțiuni între ghilimele simple sau duble. Orice caracter (inclusiv o bară oblică inversă) poate fi inclus prin prefixarea caracterului care urmează să fie inclus cu o bară oblică inversă. fișier poate conține la rândul său opțiuni @fișier suplimentare; orice astfel de opțiuni vor fi procesate în mod recursiv.

Intrări de informații pentru binutils.

Drepturi de autor © 1991-2024 Free Software Foundation, Inc.

Se acordă permisiunea de a copia, distribui și/sau modifica acest document în conformitate cu termenii Licenței GNU Free Documentation, versiunea 1.3 sau orice versiune ulterioară publicată de Free Software Foundation; fără secțiuni invariante, fără texte de copertă și fără texte de contra copertă. O copie a licenței este inclusă în secțiunea intitulată „GNU Free Documentation License”.

Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>

Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE.

Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.

7 mai 2024 binutils-2.42.0