READELF(1)

NUME
readelf - afișează informații despre fișierele ELF

SINOPSIS
readelf [-a|--all]
        [-h|--file-header]
        [-l|--program-headers|--segments]
        [-S|--section-headers|--sections]
        [-g|--section-groups]
        [-t|--section-details]
        [-e|--headers]
        [-s|--syms|--symbols]
        [--dyn-syms|--lto-syms]
        [--sym-base=[0|8|10|16]]
        [--demangle=stil|--no-demangle]
        [--quiet]
        [--recurse-limit|--no-recurse-limit]
        [-U metoda|--unicode=metoda]
        [-X|--extra-sym-info|--no-extra-sym-info]
        [-n|--notes]
        [-r|--relocs]
        [-u|--unwind]
        [-d|--dynamic]
        [-V|--version-info]
        [-A|--arch-specific]
        [-D|--use-dynamic]
        [-L|--lint|--enable-checks]
        [-x <număr sau nume>|--hex-dump=<număr sau nume>]
        [-p <număr sau nume>|--string-dump=<număr sau nume>]
        [-R <număr sau nume>|--relocated-dump=<număr sau nume>]
        [-j <număr sau nume>|--display-section=<număr sau nume>]
        [-z|--decompress]
        [-c|--archive-index]
        [-w[lLiaprmfFsoORtUuTgAck]|
         --debug-dump[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames-interp,=str,=str-offsets,=loc,=Ranges,=pubtypes,=trace_info,=trace_abbrev,=trace_aranges,=gdb_index,=addr,=cu_index,=links]]
        [-wK|--debug-dump=follow-links]
        [-wN|--debug-dump=no-follow-links]
        [-wD|--debug-dump=use-debuginfod]
        [-wE|--debug-dump=do-not-use-debuginfod]
        [-P|--process-links]
        [--dwarf-depth=n]
        [--dwarf-start=n]
        [--ctf=secțiunea]
        [--ctf-parent=secțiunea]
        [--ctf-symbols=secțiunea]
        [--ctf-strings=secțiunea]
        [--sframe=secțiunea]
        [-I|--histogram]
        [-v|--version]
        [-W|--wide]
        [-T|--silent-truncation]
        [-H|--help]
        fișier-elf...

DESCRIERE
readelf afișează informații despre unul sau mai multe fișiere obiect în format ELF. Opțiunile controlează ce informații anume trebuie afișate.

fișier-elf... sunt fișierele obiect care urmează să fie examinate. Sunt acceptate fișierele ELF pe 32 și 64 de biți, precum și arhivele care conțin fișiere ELF.

Acest program îndeplinește o funcție similară cu objdump, dar intră în mai multe detalii și există independent de biblioteca BFD, astfel încât, dacă există o eroare în BFD, atunci readelf nu va fi afectat.

OPȚIUNI
Formele lungă și scurtă ale opțiunilor, prezentate aici ca alternative, sunt echivalente. Cel puțin o opțiune în afară de -v sau -H trebuie să fie dată.

-a
--all
    Echivalează cu specificarea --file-header, --program-headers, --sections, --symbols, --relocs, --dynamic, --notes, --version-info, --arch-specific, --unwind, --section-groups și --histogram.

    Notă - această opțiune nu activează --use-dynamic în sine, astfel încât, dacă această opțiune nu este prezentă în linia de comandă, simbolurile dinamice și realocările dinamice nu vor fi afișate.

-h
--file-header
    Afișează informațiile conținute în antetul ELF de la începutul fișierului.

-l
--program-headers
--segments
    Afișează informațiile conținute în anteturile de segment ale fișierului, în cazul în care există.

--quiet
    Suprimă diagnosticarea „fără simboluri”.

-S
--sections
--section-headers
    Afișează informațiile conținute în anteturile de secțiune ale fișierului, în cazul în care există.

-g
--section-groups
    Afișează informațiile conținute în grupurile de secțiuni ale fișierului, în cazul în care acestea există.

-t
--section-details
    Afișează informațiile detaliate ale secțiunii. Implică -S.

-s
--symbols
--syms
    Afișează intrările din secțiunea tabel de simboluri a fișierului, dacă acesta are una. În cazul în care un simbol are asociate informații despre versiune, acestea sunt, de asemenea, afișate. Șirul versiunii este afișat ca sufix la numele simbolului, precedat de un caracter @. De exemplu, foo@VER_1. În cazul în care versiunea este versiunea implicită care urmează să fie utilizată la rezolvarea trimiterilor la simbol fără versiune, aceasta este afișată sub forma unui sufix precedat de două caractere @. De exemplu, foo@@VER_2.

--dyn-syms
    Afișează intrările din secțiunea tabelului de simboluri dinamice a fișierului, în cazul în care acesta are una. Formatul de ieșire este același cu cel utilizat de opțiunea --syms.

--lto-syms
    Afișează conținutul tuturor tabelelor de simboluri LTO din fișier.

--sym-base=[0|8|10|16]
    Forțează câmpul de dimensiune al tabelului de simboluri să utilizeze baza dată. Orice opțiune nerecunoscută va fi tratată ca 0. --sym-base=0 reprezintă comportamentul implicit și tradițional. Această opțiune va afișa dimensiunile sub formă zecimală pentru numere mai mici de 100000. Pentru dimensiuni mai mari de 100000 se va utiliza notația hexazecimală cu prefixul 0x. --sym-base=8 va da dimensiunile simbolurilor în octal. --sym-base=10 va indica întotdeauna dimensiunile simbolurilor în zecimal. --sym-base=16 va indica întotdeauna dimensiunile simbolurilor în hexazecimal cu prefixul 0x.

-C
--demangle[=stil]
    Decodifică (demangle) numele simbolurilor de nivel scăzut în nume de nivel utilizator. Acest lucru face ca numele funcțiilor C++ să poată fi citite. Compilatoare diferite au stiluri diferite de a codifica (mangling). Argumentul opțional stil decodificare„demangling style” poate fi utilizat pentru a alege un stil de decodificare adecvat pentru compilatorul dumneavoastră.

--no-demangle
    Nu decodifică numele simbolurilor de nivel scăzut. Aceasta este opțiunea implicită.

--recurse-limit
--no-recurse-limit
--recursion-limit
--no-recursion-limit
    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.

-U [d|i|l|e|x|h]
--unicode=[default|invalid|locale|escape|hex|highlight]
    Controlează afișarea caracterelor non-ASCII în numele identificatorilor. În mod implicit (--unicode=locale sau --unicode=default), acestea sunt tratate ca fiind caractere multi-octet și sunt afișate în limba locală curentă. Toate celelalte versiuni ale acestei opțiuni tratează octeții ca valori codificate UTF-8 și încearcă să le interpreteze. Dacă nu pot fi interpretate sau dacă se utilizează opțiunea --unicode=invalid, atunci acestea sunt afișate ca o secvență de octeți hexazecimali, înglobate între caractere acolade.

    Utilizarea opțiunii --unicode=escape va afișa caracterele sub forma unor secvențe de evadare unicode (\uxxxx). Utilizarea opțiunii --unicode=hex va afișa caracterele sub formă de secvențe de octeți hexazecimali, cuprinse între paranteze drepte.

    Utilizarea opțiunii --unicode=highlight va afișa caracterele ca secvențe de eludare unicode, dar le va evidenția și cu roșu, presupunând că dispozitivul de ieșire acceptă colorarea. Colorarea are rolul de a atrage atenția asupra prezenței secvențelor unicode atunci când nu ar fi de așteptat.

-X
--extra-sym-info
    La afișarea detaliilor simbolurilor, include informații suplimentare care nu sunt prezentate în mod normal. În prezent, se adaugă doar numele secțiunii la care face referire câmpul index al simbolului, dacă există unul. În viitor, este posibil ca, atunci când această opțiune este activată, să fie afișate mai multe informații.

    Activarea acestei opțiuni activează efectiv și opțiunea --wide, cel puțin atunci când se afișează informații despre simboluri.

--no-extra-sym-info
    Dezactivează efectul opțiunii --extra-sym-info. Aceasta este opțiunea implicită.

-e
--headers
    Afișează toate anteturile din fișier. Echivalent cu -h -l -S.

-n
--notes
    Afișează conținutul segmentelor și/sau secțiunilor NOTE, dacă există.

-r
--relocs
    Afișează conținutul secțiunii de realocare a fișierului, dacă are una.

-u
--unwind
    Afișează conținutul secțiunii de desfășurare a fișierului, dacă are una. În prezent sunt acceptate numai secțiunile de desfășurare pentru fișierele IA64 ELF, precum și tabelele de desfășurare ARM (".ARM.exidx" / ".ARM.extab")). Dacă suportul nu este încă implementat pentru arhitectura dumneavoastră, puteți încerca să extrageți conținutul secțiunii .eh_frames folosind opțiunile --debug-dump=frames sau --debug-dump=frames-interp.

-d
--dynamic
    Afișează conținutul secțiunii dinamice a fișierului, în cazul în care acesta are una.

-V
--version-info
    Afișează conținutul secțiunilor de versiune din fișier, dacă acestea există.

-A
--arch-specific
    Afișează informațiile specifice arhitecturii din fișier, în cazul în care există.

-D
--use-dynamic
    La afișarea simbolurilor, această opțiune face ca readelf să utilizeze tabelele sumelor-de-control ale simbolurilor din secțiunea dinamică a fișierului, mai degrabă decât secțiunile tabelelor de simboluri.

    La afișarea realocărilor, această opțiune face ca readelf să afișeze mai degrabă realocările dinamice decât cele statice.

-L
--lint
--enable-checks
    Afișează mesaje de avertizare cu privire la posibilele probleme ale fișierului (fișierelor) examinat(e). Dacă este utilizată singură, se va examina întregul conținut al fișierului (fișierelor). Dacă se utilizează împreună cu una dintre opțiunile de extragere a datelor, atunci mesajele de avertizare vor fi produse numai pentru elementele afișate.

-x <număr sau nume>
--hex-dump=<număr sau nume>
    Afișează conținutul secțiunii indicate sub formă de octeți hexazecimali. Un număr identifică o anumită secțiune în funcție de indicele din tabelul de secțiuni; orice alt șir de caractere identifică toate secțiunile cu numele respectiv din fișierul obiect. Această opțiune poate fi repetată de mai multe ori în linia de comandă pentru a solicita mai multe extrageri hexazecimale.

-R <număr sau nume>
--relocated-dump=<număr sau nume>
    Afișează conținutul secțiunii indicate sub formă de octeți hexazecimali. Un număr identifică o anumită secțiune în funcție de indicele din tabelul de secțiuni; orice alt șir de caractere identifică toate secțiunile cu numele respectiv din fișierul obiect. Conținutul secțiunii va fi realocat înainte de a fi afișat. Această opțiune poate fi repetată de mai multe ori în linia de comandă pentru a solicita mai multe extrageri hexazecimale.

-p <număr sau nume>
--string-dump=<număr sau nume>
    Afișează conținutul secțiunii indicate ca șiruri de caractere imprimabile. Un număr identifică o anumită secțiune în funcție de indicele din tabelul de secțiuni; orice alt șir de caractere identifică toate secțiunile cu numele respectiv din fișierul obiect. Această opțiune poate fi repetată de mai multe ori în linia de comandă pentru a solicita mai multe extrageri hexazecimale.

-j <număr sau nume>
--display-section
    Afișează conținutul secțiunii indicate în funcție de tipul de antet al secțiunii. Secțiunile care conțin realocări vor fi afișate ca și cum ar fi fost utilizată opțiunea --relocations, secțiunile care conțin simboluri vor fi afișate ca și cum ar fi fost utilizată opțiunea --syms și așa mai departe.

    Un număr identifică o anumită secțiune în funcție de indicele din tabelul de secțiuni; orice alt șir de caractere identifică toate secțiunile cu numele respectiv din fișierele de intrare.

    Această opțiune poate fi repetată de mai multe ori în linia de comandă pentru a solicita mai multe extrageri de secțiuni.

-z
--decompress
    Solicită ca secțiunile care sunt extrase prin opțiunile x, R sau p să fie decomprimate înainte de a fi afișate. În cazul în care secțiunile nu sunt comprimate, acestea sunt afișate ca atare.

-c
--archive-index
    Afișează informațiile privind indexul simbolului de fișier conținute în partea de antet a arhivelor binare. Realizează aceeași funcție ca și comanda t la ar, dar fără a utiliza biblioteca BFD.

-w[lLiaprmfFsOoRtUuTgAckK]
--debug-dump[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames-interp,=str,=str-offsets,=loc,=Ranges,=pubtypes,=trace_info,=trace_abbrev,=trace_aranges,=gdb_index,=addr,=cu_index,=links,=follow-links]
    Afișează conținutul secțiunilor de depanare DWARF din fișier, dacă sunt prezente. Secțiunile de depanare comprimate sunt decomprimate automat (temporar) înainte de a fi afișate. Dacă una sau mai multe litere sau cuvinte opționale urmează după opțiune, atunci vor fi descărcate numai acele tipuri de date. Literele și cuvintele se referă la următoarele informații:

    "a"
    "=abbrev"
        Afișează conținutul secțiunii .debug_abbrev.

    "A"
    "=addr"
        Afișează conținutul secțiunii .debug_addr.

    "c"
    "=cu_index"
        Afișează conținutul secțiunilor .debug_cu_index și/sau .debug_tu_index.

    "f"
    "=frames"
        Afișează conținutul brut al unei secțiuni .debug_frame.

    "F"
    "=frames-interp"
        Afișează conținutul interpretat al unei secțiuni .debug_frame.

    "g"
    "=gdb_index"
        Afișează conținutul secțiunilor .gdb_index și/sau .debug_names.

    "i"
    "=info"
        Afișează conținutul secțiunii .debug_info. Notă: ieșirea rezultată din această opțiune poate fi, de asemenea, restricționată prin utilizarea opțiunilor --dwarf-depth și --dwarf-start.

    "k"
    "=links"
        Afișează conținutul secțiunilor .gnu_debuglink, .gnu_debugaltlink și .debug_sup, în cazul în care oricare dintre ele este prezentă. Afișează, de asemenea, toate legăturile către fișiere de obiecte dwarf separate (dwo), dacă acestea sunt specificate prin atributele DW_AT_GNU_dwo_name sau DW_AT_dwo_name din secțiunea .debug_info.

    "K"
    "=follow-links"
        Afișează conținutul tuturor secțiunilor de depanare selectate care se găsesc în fișiere de informații de depanare separate și legate. Acest lucru poate avea ca rezultat afișarea mai multor versiuni ale aceleiași secțiuni de depanare, dacă aceasta există în mai multe fișiere.

        În plus, atunci când se afișează atributele DWARF, în cazul în care se găsește un formular care face trimitere la un fișier de informații de depanare separat, atunci va fi afișat și conținutul la care se face referire.

        Notă - în unele distribuții, această opțiune este activată în mod implicit. Ea poate fi dezactivată prin intermediul opțiunii de depanare N. Valoarea implicită poate fi aleasă la configurarea binutils prin intermediul opțiunilor --enable-follow-debug-links=yes sau --enable-follow-debug-links=no. Dacă acestea nu sunt utilizate, atunci opțiunea implicită este de a activa urmărirea legăturilor de depanare.

        Notă - dacă suportul pentru protocolul debuginfod a fost activat atunci când binutils a fost construit, atunci această opțiune va include, de asemenea, o încercare de a contacta orice server debuginfod menționat în variabila de mediu DEBUGINFOD_URLS. Rezolvarea acestei probleme ar putea dura ceva timp. Acest comportament poate fi dezactivat prin intermediul opțiunii de depanare =do-not-use-debuginfod.

    "N"
    "=no-follow-links"
        Dezactivează urmărirea legăturilor către fișiere de informații de depanare separate.

    "D"
    "=use-debuginfod"
        Activează contactarea serverelor de depanare în cazul în care este necesar să se urmeze legături de depanare. Acesta este comportamentul implicit.

    "E"
    "=do-not-use-debuginfod"
        Dezactivează contactarea serverelor de depanare atunci când este necesar să se urmărească legături de depanare.

    "l"
    "=rawline"
        Afișează conținutul secțiunii .debug_line într-un format brut.

    "L"
    "=decodedline"
        Afișează conținutul interpretat al secțiunii .debug_line.

    "m"
    "=macro"
        Afișează conținutul secțiunilor .debug_macro și/sau .debug_macinfo.

    "o"
    "=loc"
        Afișează conținutul secțiunilor .debug_loc și/sau .debug_loclists.

    "O"
    "=str-offsets"
        Afișează conținutul secțiunii .debug_str_offsets.

    "p"
    "=pubnames"
        Afișează conținutul secțiunilor .debug_pubnames și/sau .debug_gnu_pubnames.

    "r"
    "=aranges"
        Afișează conținutul secțiunii .debug_aranges.

    "R"
    "=Ranges"
        Afișează conținutul secțiunilor .debug_ranges și/sau .debug_rnglists.

    "s"
    "=str"
        Afișează conținutul secțiunilor .debug_str, .debug_line_str și/sau .debug_str_offsets.

    "t"
    "=pubtype"
        Afișează conținutul secțiunilor .debug_pubtypes și/sau .debug_gnu_pubtypes.

    "T"
    "=trace_aranges"
        Afișează conținutul secțiunii .trace_aranges.

    "u"
    "=trace_abbrev"
        Afișează conținutul secțiunii .trace_abbrev.

    "U"
    "=trace_info"
        Afișează conținutul secțiunii .trace_info.

    Notă: afișarea conținutului secțiunilor .debug_static_funcs, .debug_static_vars și debug_weaknames nu este acceptată în prezent.

--dwarf-depth=n
    Limitează extragerea secțiunii „.debug_info” la n copii. Acest lucru este util numai cu --debug-dump=info. Valoarea implicită este de a imprima toate DIE-urile; valoarea specială 0 pentru n va avea, de asemenea, acest efect.

    Cu o valoare diferită de zero pentru n, nu se afișează DIE-uri la niveluri mai mari sau mai adânci decât n. Intervalul pentru n este bazat pe zero.

--dwarf-start=n
    Afișează numai DIE-urile care încep cu DIE numerotate n. Acest lucru este util numai cu --debug-dump=info.

    Dacă este specificată, această opțiune va suprima afișarea oricăror informații de antet și a tuturor DIE-urilor înainte de DIE numerotate n. Vor fi afișați numai frații și copiii DIE specificați.

    Aceasta poate fi utilizată împreună cu --dwarf-depth.

-P
--process-links
    Afișează conținutul secțiunilor care nu sunt de depanare și care se găsesc în fișiere debuginfo separate care sunt legate de fișierul principal. Această opțiune implică automat opțiunea -wK și vor fi afișate numai secțiunile solicitate prin alte opțiuni de linie de comandă.

--ctf[=secțiunea]
    Afișează conținutul secțiunii CTF specificate. Secțiunile CTF conțin la rândul lor numeroase subsecțiuni, toate fiind afișate în ordine.

    În mod implicit, afișează numele secțiunii numite .ctf, care este numele emis de ld.

--ctf-parent=membru
    În cazul în care secțiunea CTF conține tipuri definite în mod ambiguu, aceasta va consta într-o arhivă de mai multe dicționare CTF, toate moștenind dintr-un dicționar care conține tipuri neechivoce. Acest membru se numește în mod implicit .ctf, la fel ca secțiunea care îl conține, dar este posibil să se schimbe acest nume folosind funcția "ctf_link_set_memb_name_changer" în momentul realizării legăturii. Atunci când se examinează arhivele CTF care au fost create de un editor de legături care utilizează funcția de schimbare a numelui pentru a redenumi membrul arhivei părinte, se poate utiliza --ctf-parent pentru a specifica numele utilizat pentru membrul părinte.

--ctf-parent-section=secțiune
    Această opțiune vă permite să alegeți o secțiune complet diferită pentru dicționarul părinte CTF care conține tipuri neambigue decât pentru dicționarele copil care conțin restul ambiguu. Editorul de legături nu emite obiecte ELF structurate astfel, dar unii editori de legături de la terți pot emite astfel de obiecte. De asemenea, este convenabil să inspectați CTF scris ca mai multe fișiere brute pentru a le compune cu objcopy, care le poate pune în secțiuni ELF diferite, dar nu în membri diferiți ai unui singur dicționar CTF.

--ctf-symbols=secțiunea
--ctf-strings=secțiunea
    Specifică numele unei alte secțiuni din care fișierul CTF poate moșteni șiruri de caractere și simboluri. În mod implicit, se utilizează „.symtab” și tabelul de șiruri de caractere asociat acestuia.

    Dacă este specificat unul dintre --ctf-symbols sau --ctf-strings, trebuie să fie specificat și celălalt.

-I
--histogram
    Afișarea unei histograme a lungimilor listelor de găleți (bucket) la afișarea conținutului tabelelor de simboluri.

-v
--version
    Afișează numărul de versiune al «readelf».

-W
--wide
    Nu întrerupe liniile de ieșire pentru a le încadra în 80 de coloane. În mod implicit, readelf întrerupe liniile de antet de secțiune și de listare a segmentelor pentru fișierele ELF pe 64 de biți, astfel încât acestea să încapă în 80 de coloane. Această opțiune face ca readelf să imprime fiecare antet de secțiune, respectiv fiecare segment pe o singură linie, ceea ce este mult mai ușor de citit pe terminale mai late de 80 de coloane.

-T
--silent-truncation
    În mod normal, atunci când readelf afișează un nume de simbol și trebuie să trunchieze numele pentru a se potrivi într-un afișaj de 80 de coloane, va adăuga un sufix de „[...]” la nume. Această opțiune de linie de comandă dezactivează acest comportament, permițând afișarea a încă 5 caractere ale numelui și restabilind vechiul comportament al readelf (înainte de versiunea 2.35).

-H
--help
    Afișează opțiunile liniei de comandă înțelese de readelf.

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

CONSULTAȚI ȘI
objdump(1), and the Info entries for binutils.

DREPTURI DE AUTOR
Drepturi de autor © 1991-2025 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”.

TRADUCERE
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 (https://www.gnu.org/licenses/gpl-3.0.html) 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.