OBJDUMP(1) Instrumente pentru dezvoltare(programare) GNU OBJDUMP(1) NUME objdump - afieaza informaii din fiierele obiect SINOPSIS objdump [-a|--archive-headers] [-b nume-bfd|--target=nume-bfd] [-C|--demangle[=stil] ] [-d|--disassemble[=simbol]] [-D|--disassemble-all] [-z|--disassemble-zeroes] [-EB|-EL|--endian={big | little }] [-f|--file-headers] [-F|--file-offsets] [--file-start-context] [-g|--debugging] [-e|--debugging-tags] [-h|--section-headers|--headers] [-i|--info] [-j seciunea|--section=seciunea] [-l|--line-numbers] [-S|--source] [--source-comment[=text]] [-m maina|--architecture=maina] [-M opiuni|--disassembler-options=opiuni] [-p|--private-headers] [-P opiuni|--private=opiuni] [-r|--reloc] [-R|--dynamic-reloc] [-s|--full-contents] [-Z|--decompress] [-W[lLiaprmfFsoORtUuTgAck]| --dwarf[=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|--dwarf=follow-links] [-WN|--dwarf=no-follow-links] [-wD|--dwarf=use-debuginfod] [-wE|--dwarf=do-not-use-debuginfod] [-L|--process-links] [--ctf=seciunea] [--sframe=seciunea] [-G|--stabs] [-t|--syms] [-T|--dynamic-syms] [-x|--all-headers] [-w|--wide] [--start-address=adresa] [--stop-address=adresa] [--no-addresses] [--prefix-addresses] [--[no-]show-raw-insn] [--adjust-vma=decalaj] [--show-all-symbols] [--dwarf-depth=n] [--dwarf-start=n] [--ctf-parent=seciunea] [--no-recurse-limit|--recurse-limit] [--special-syms] [--prefix=prefix] [--prefix-strip=nivel] [--insn-width=laimea] [--visualize-jumps[=color|=extended-color|=off] [--disassembler-color=[off|terminal|on|extended] [-U metoda] [--unicode=metoda] [-V|--version] [-H|--help] fiier-obiect... DESCRIERE objdump afieaza informaii despre unul sau mai multe fiiere obiect. Opiunile controleaza ce informaii specifice se afieaza. Aceste informaii sunt utile mai ales programatorilor care lucreaza la instrumentele de compilare, spre deosebire de programatorii care doresc doar ca programul lor sa fie compilat i sa funcioneze. fiier-obiect... sunt fiierele obiect care urmeaza sa fie examinate. Atunci cand specificai arhive, objdump afieaza informaii despre fiecare dintre fiierele obiect membre. OPIUNI Formele lunga i scurta ale opiunilor, prezentate aici ca alternative, sunt echivalente. Cel puin o opiune din lista -a,-d,-D,-e,-f,-g,-G,-h,-H,-p,-P,-r,-R,-s,-S,-t,-T,-V,-x trebuie sa fie data. -a --archive-header Daca oricare dintre fiierele fiier-obiect sunt arhive, afieaza informaiile din antetul arhivei (intr-un format similar cu ls -l). Pe langa informaiile pe care le-ai putea lista cu ar tv, objdump -a afieaza formatul fiierului obiect al fiecarui membru al arhivei. --adjust-vma=decalaj La descarcarea informaiilor, adauga mai intai decalaj la toate adresele seciunilor. Acest lucru este util in cazul in care adresele seciunilor nu corespund tabelului de simboluri, ceea ce se poate intampla la plasarea seciunilor la anumite adrese atunci cand se utilizeaza un format care nu poate reprezenta adresele seciunilor, cum ar fi a.out. -b nume-bfd --target=nume-bfd Specifica ca formatul codului obiect pentru fiierele obiect este nume-bfd. Aceasta opiune poate sa nu fie necesara; objdump poate recunoate automat multe formate. De exemplu, objdump -b oasys -m vax -h fu.o afieaza informaii sumare din antetele seciunilor (-h) din fu.o, care este identificat explicit (-m) ca fiind un fiier obiect VAX in formatul produs de compilatoarele Oasys. Putei lista formatele disponibile cu opiunea -i. -C --demangle[=stil] Decodificarea (demangle) numelor de simboluri de nivel scazut in nume de nivel utilizator. In afara de eliminarea oricarei sublinieri iniiale adaugate de sistem, acest lucru face ca numele funciilor C++ sa fie lizibile. Compilatoare diferite au stiluri diferite de decodificare. Argumentul opional ,,demangling style" poate fi utilizat pentru a alege un stil de decodificare adecvat pentru compilatorul dumneavoastra. --recurse-limit --no-recurse-limit --recursion-limit --no-recursion-limit Activeaza sau dezactiveaza limitarea numarului de recursivitai efectuate in timpul decodificarii irurilor de caractere. Deoarece formatele de manipulare a numelor permit un nivel infinit de recursivitate, este posibil sa se creeze iruri a caror decodificare va epuiza spaiul de stiva disponibil pe calculatorul gazda, declanand o eroare de memorie. Limitarea incearca sa previna acest lucru prin restricionarea recursivitaii la 2048 de niveluri de imbricare. In mod implicit, aceasta limita este activata, dar poate fi necesar sa fie dezactivata pentru a dezmembra nume cu adevarat complicate. Reinei totui ca, daca limita de recursivitate este dezactivata, este posibila epuizarea stivei i orice raport de eroare privind un astfel de eveniment va fi respins. -g --debugging Afieaza informaii de depanare. Aceasta opiune incearca sa analizeze informaiile din formatul de depanare STABS stocate in fiier i sa le afieze folosind o sintaxa asemanatoare C. Daca nu a fost gasita nicio depanare STABS, aceasta opiune recurge la opiunea -W pentru a afia orice informaie DWARF din fiier. -e --debugging-tags La fel ca -g, dar informaiile sunt generate intr-un format compatibil cu instrumentul ctags. -d --disassemble --disassemble=simbol Afieaza mnemonica de asamblare pentru instruciunile mainii din fiierul de intrare. Aceasta opiune dezasambleaza numai acele seciuni care se ateapta sa conina instruciuni. Daca se da argumentul opional simbol, atunci se afieaza mnemonica de asamblare incepand cu simbolul. Daca simbol este un nume de funcie, dezasamblarea se va opri la sfaritul funciei, altfel se va opri cand se intalnete urmatorul simbol. In cazul in care simbol nu se potrivete, nu se va afia nimic. Reinei ca daca opiunea --dwarf=follow-links este activata, atunci orice tabele de simboluri din fiierele de informaii de depanare legate vor fi citite i utilizate la dezasamblare. -D --disassemble-all La fel ca -d, dar dezasambleaza coninutul tuturor seciunilor non-bss care nu sunt goale, nu doar pe cele care se ateapta sa conina instruciuni. -j poate fi utilizata pentru a selecta seciuni specifice. Aceasta opiune are, de asemenea, un efect subtil asupra dezasamblarii instruciunilor din seciunile de cod. Atunci cand opiunea -d este in vigoare, objdump va presupune ca orice simboluri prezente intr-o seciune de cod apar la limita dintre instruciuni i va refuza sa dezasambleze peste o astfel de limita. Cu toate acestea, atunci cand opiunea -D este in vigoare, aceasta presupunere este suprimata. Aceasta inseamna ca este posibil ca rezultatele -d i -D sa difere daca, de exemplu, datele sunt stocate in seciunile de cod. Daca inta este o arhitectura ARM, aceasta opiune are, de asemenea, efectul de a fora dezasamblatorul sa decodifice bucai de date gasite in seciunile de cod ca i cum ar fi instruciuni. Reinei ca daca opiunea --dwarf=follow-links este activata, atunci orice tabele de simboluri din fiierele de informaii de depanare legate vor fi citite i utilizate la dezasamblare. --no-addresses La dezasamblare, nu imprima adresele pe fiecare linie sau pentru simboluri i decalaje de realocare. In combinaie cu --no-show-raw-insn acest lucru poate fi util pentru compararea rezultatelor compilatorului. --prefix-addresses La dezasamblare, imprima adresa completa pe fiecare linie. Acesta este cel mai vechi format de dezasamblare. -EB -EL --endian={big|little} Specifica caracterul ,,endianness" al fiierelor obiect. Acest lucru afecteaza numai dezasamblarea. Acest lucru poate fi util atunci cand dezasamblai un format de fiier care nu descrie informaii despre ,,endianness", cum ar fi inregistrarile S. -f --file-headers Afieaza informaii sumare din antetul general al fiecarui fiier fiier-obiect. -F --file-offsets La dezasamblarea seciunilor, ori de cate ori se afieaza un simbol, se afieaza i decalajul de fiier al regiunii de date care urmeaza sa fie evacuata. In cazul in care sunt omise zerouri, atunci cand se reia dezasamblarea, indica utilizatorului cate zerouri au fost omise i decalajul de fiier al locaiei de la care se reia dezasamblarea. Atunci cand se descarca seciuni, se afieaza decalajul de fiier al locaiei de la care incepe descarcarea. --file-start-context Specifica ca, atunci cand se afieaza cod sursa/dezasamblare inter-lista (presupune -S) dintr-un fiier care nu a fost inca afiat, se extinde contextul la inceputul fiierului. -h --section-headers --headers Afieaza informaii sumare din antetele seciunilor din fiierul obiect. Segmentele de fiier pot fi realocate la adrese non-standard, de exemplu prin utilizarea opiunilor -Ttext, -Tdata sau -Tbss la \fBld. Cu toate acestea, unele formate de fiiere obiect, cum ar fi a.out, nu stocheaza adresa de pornire a segmentelor de fiier. In aceste situaii, dei ld realoca corect seciunile, utilizarea objdump -h pentru a lista anteturile seciunilor fiierului nu poate afia adresele corecte. In schimb, se afieaza adresele obinuite, care sunt implicite pentru inta. Reinei ca, in unele cazuri, este posibil ca o seciune sa aiba atat atributul READONLY, cat i atributul NOREAD activate. In astfel de cazuri, atributul NOREAD are prioritate, dar objdump le va raporta pe ambele, deoarece aezarea exacta a biilor de semnalizare poate fi importanta. -H --help Afieaza un rezumat al opiunilor la objdump i iese. -i --info Afieaza o lista cu toate arhitecturile i formatele de obiecte disponibile pentru specificare cu -b sau -m. -j nume --section=nume Afieaza informaii pentru seciunea nume. Aceasta opiune poate fi specificata de mai multe ori. -L --process-links Afieaza coninutul seciunilor care nu sunt de depanare i care se gasesc in fiiere debuginfo separate care sunt legate de fiierul principal. Aceasta opiune implica automat opiunea -WK i vor fi afiate numai seciunile solicitate prin alte opiuni din linia de comanda. -l --line-numbers Eticheteaza afiarea (utilizand informaii de depanare) cu numele fiierului i numerele liniei sursa corespunzatoare codului obiect sau realocarilor afiate. Utila numai cu -d, -D sau -r. -m maina --architecture=maina Specifica arhitectura care trebuie utilizata la dezasamblarea fiierelor obiect. Aceasta opiune poate fi utila la dezasamblarea fiierelor obiect care nu descriu informaii despre arhitectura, cum ar fi inregistrarile S. Putei lista arhitecturile disponibile cu opiunea -i. Pentru majoritatea arhitecturilor este posibil sa se furnizeze un nume de arhitectura i un nume de maina, separate prin doua puncte. De exemplu, foo:bar s-ar referi la tipul de maina bar in arhitectura foo. Acest lucru poate fi util daca objdump a fost configurat pentru a permite mai multe arhitecturi. Daca inta este o arhitectura ARM, atunci aceasta opiune are un efect suplimentar. Aceasta restricioneaza dezasamblarea doar la instruciunile acceptate de arhitectura specificata de maina. Daca este necesara utilizarea acestei opiuni deoarece fiierul de intrare nu conine informaii despre arhitectura, dar se dorete i dezasamblarea tuturor instruciunilor, utilizai -marm. -M opiuni --disassembler-options=opiuni Transmite informaii specifice intei catre dezasamblator. Compatibila numai cu unele inte. Daca este necesar sa specificai mai multe opiuni de dezasamblare, atunci pot fi utilizate mai multe opiuni -M sau pot fi plasate impreuna intr-o lista separata prin virgule. Pentru ARC, dsp controleaza imprimarea instruciunilor DSP, spfp selecteaza imprimarea instruciunilor FPX de precizie unica FP, dpfp selecteaza imprimarea instruciunilor FPX de precizie dubla FP, quarkse_em selecteaza imprimarea instruciunilor speciale QuarkSE-EM, fpuda selecteaza imprimarea instruciunilor de asistena de precizie dubla, fpus selecteaza imprimarea instruciunilor FPU de precizie unica FP, in timp ce fpud selecteaza imprimarea instruciunilor FPU de precizie dubla FP. In plus, se poate opta pentru imprimarea tuturor imediatelor in hexazecimal utilizand hex. In mod implicit, valorile imediate scurte sunt imprimate utilizand reprezentarea zecimala, in timp ce valorile imediate lungi sunt imprimate in hexazecimal. cpu=... permite aplicarea unui anumit ISA la dezasamblarea instruciunilor, inlocuind valoarea -m sau orice se afla in fiierul ELF. Acest lucru ar putea fi util pentru a selecta ARC EM sau HS ISA, deoarece arhitectura este aceeai pentru acestea, iar dezasamblatorul se bazeaza pe datele private din antetul ELF pentru a decide daca codul este pentru EM sau HS. Aceasta opiune poate fi specificata de mai multe ori - va fi utilizata doar ultima valoare. Valorile valabile sunt aceleai ca pentru opiunea de asamblare -mcpu=.... Daca inta este o arhitectura ARM, aceasta opiune poate fi utilizata pentru a selecta setul de nume de registre care este utilizat in timpul dezasamblarii. Specificarea -M reg-names-std (implicit) va selecta denumirile registrelor utilizate in documentaia setului de instruciuni ARM, dar cu registrul 13 denumit ,,sp", registrul 14 denumit ,,lr" i registrul 15 denumit ,,pc". Specificarea -M reg-names-apcs va selecta setul de nume utilizat de standardul ARM Procedure Call Standard, in timp ce specificarea -M reg-names-raw va utiliza doar r urmat de numarul registrului. Exista, de asemenea, doua variante ale schemei de denumire a registrelor APCS activate prin -M reg-names-atpcs i -M reg-names-special-atpcs care utilizeaza conveniile de denumire ARM/Thumb Procedure Call Standard; (fie cu denumirile registrelor normale, fie cu denumirile registrelor speciale). Aceasta opiune poate fi, de asemenea, utilizata pentru arhitecturile ARM pentru a fora dezasamblatorul sa interpreteze toate instruciunile ca instruciuni Thumb prin utilizarea opiunii --disassembler-options=force-thumb. Acest lucru poate fi util atunci cand incercai sa dezasamblai codul thumb produs de alte compilatoare. Pentru intele AArch64, aceasta opiune poate fi utilizata pentru a stabili daca instruciunile sunt dezasamblate ca cele mai generale instruciuni utilizand opiunea -M no-aliases sau daca notele de instruciuni ar trebui generate ca comentarii in dezasamblare utilizand opiunea -M note. Pentru x86, unele dintre opiuni dubleaza funciile opiunii -m, dar permit un control mai fin. "x86-64" "i386" "i8086" Selecteaza dezasamblarea pentru arhitectura data. "intel" "att" Selecteaza intre modul de sintaxa Intel i modul de sintaxa AT&T. "amd64" "intel64" Selecteaza intre AMD64 ISA i Intel64 ISA. "intel-mnemonic" "att-mnemonic" Selecteaza intre modul intel mnemonic i modul AT&T mnemonic. Nota: "intel-mnemonic" implica "intel" i "att-mnemonic" implica "att". "addr64" "addr32" "addr16" "data32" "data16" Specifica dimensiunea implicita a adresei i dimensiunea operandului. Aceste cinci opiuni vor fi anulate daca "x86-64", "i386" sau "i8086" apar ulterior in irul de opiuni. "suffix" In modul AT&T i, de asemenea, pentru un set limitat de instruciuni in modul Intel, instruiete dezasamblatorul sa imprime un sufix mnemonic chiar i atunci cand sufixul ar putea fi dedus din operanzi sau, pentru anumite instruciuni, din valorile implicite ale modului de execuie. Pentru PowerPC, argumentul -M raw selecteaza dezasamblarea inseriilor hardware i nu a pseudonimelor. De exemplu, vei vedea "rlwinm" in loc de "clrlwi", i "addi" in loc de "li". Toate argumentele -m pentru gas care selecteaza un CPU sunt acceptate. Acestea sunt: 403, 405, 440, 464, 476, 601, 603, 604, 620, 7400, 7410, 7450, 7455, 750cl, 821, 850, 860, a2, booke, booke32, cell, com, e200z2, e200z4, e300, e500, e500mc, e500mc64, e500x2, e5500, e6500, efs, power4, power5, power6, power7, power8, power9, power10, power11, ppc, ppc32, ppc64, ppc64bridge, ppcps, pwr, pwr2, pwr4, pwr5, pwr5x, pwr6, pwr7, pwr8, pwr9, pwr10, pwr11, pwrx, titan, vle i future. 32 i 64 modifica selecia CPU implicita sau una anterioara, dezactivand i, respectiv, activand instruciunile pe 64 de bii. In plus, altivec, any, lsp, htm, vsx, spe i spe2 adauga capacitai la o selecie CPU anterioara sau ulterioara. any va dezasambla orice cod op cunoscut de binutils, dar in cazurile in care un cod op are doua semnificaii diferite sau argumente diferite, este posibil sa nu vedei dezasamblarea ateptata. Daca dezasamblai fara a oferi o selecie CPU, se va alege o valoare implicita din informaiile obinute de BFD din anteturile fiierelor obiect, dar rezultatul poate sa nu fie cel ateptat. Pentru MIPS, aceasta opiune controleaza imprimarea numelor mnemonice ale instruciunilor i a numelor registrelor in instruciunile dezasamblate. Se pot specifica mai multe selecii din urmatoarele opiuni ca ir separat prin virgule, iar opiunile nevalide sunt ignorate: "no-aliases" Imprima instruciunea mnemonica ,,bruta" in loc de o pseudo-instruciune mnemonica. De exemplu, imprima ,,daddu" sau ,,or" in loc de ,,move", ,,sll" in loc de,,nop", etc. "msa" Dezasambleaza instruciunile MSA. "virt" Dezasambleaza instruciunile ASE de virtualizare. "xpa" Dezasambleaza instruciunile eXtended Physical Address (XPA) ASE. "gpr-names=ABI" Imprima numele GPR (general-purpose register) in funcie de ABI-ul specificat. In mod implicit, numele GPR sunt selectate in funcie de ABI-ul binarului dezasamblat. "fpr-names=ABI" Imprima numele FPR (registre in virgula mobila), dupa cum este adecvat pentru ABI-ul specificat. In mod implicit, sunt imprimate numerele FPR i nu numele. "cp0-names=ARCH" Imprima numele registrelor CP0 (coprocesor de control al sistemului; coprocesor 0) in funcie de CPU sau arhitectura specificata de ARHITECTURA. In mod implicit, numele registrelor CP0 sunt selectate in funcie de arhitectura i CPU-ul binarului dezasamblat. "hwr-names=ARCH" Imprima numele HWR (registru hardware, utilizat de instruciunea "rdhwr")) in funcie de CPU-ul sau arhitectura specificate de ARHITECTURA. In mod implicit, numele HWR sunt selectate in funcie de arhitectura i CPU-ul binarului dezasamblat. "reg-names=ABI" Imprima numele GPR i FPR, dupa caz, pentru ABI-ul selectat. "reg-names=ARCH" Imprima numele registrelor specifice CPU (registrul CP0 i numele HWR), dupa caz, pentru CPU-ul sau arhitectura selectata. Pentru oricare dintre opiunile enumerate mai sus, ABI sau ARHITECTURA pot fi specificate ca numeric pentru a imprima numere in loc de nume, pentru tipurile de registre selectate. Putei lista valorile disponibile ale ABI i ARHITECTURA folosind opiunea --help. Pentru VAX, putei specifica adresele de intrare a funciei cu -M entry:0xf00ba. Putei utiliza acest lucru de mai multe ori pentru a dezasambla corect fiierele binare VAX care nu conin tabele de simboluri (cum ar fi descarcarile ROM). In aceste cazuri, masca de intrare a funciei ar fi decodificata altfel ca instruciuni VAX, ceea ce ar duce probabil la dezasamblarea greita a restului funciei. -p --private-headers Afieaza informaii care sunt specifice formatului de fiier obiect. Informaiile exacte care se afieaza depind de formatul fiierului obiect. Pentru unele formate de fiiere obiect, nu se afieaza nicio informaie suplimentara. -P opiuni --private=opiuni Afieaza informaii care sunt specifice formatului de fiier obiect. Argumentul opiuni este o lista separata prin virgule care depinde de format (listele de opiuni sunt afiate cu ajutorul lui ,,--help"). Pentru XCOFF, opiunile disponibile sunt: "header" "aout" "sections" "syms" "relocs" "lineno," "loader" "except" "typchk" "traceback" "toc" "ldinfo" Pentru PE, opiunile disponibile sunt: "header" "sections" Nu toate formatele de obiecte accepta aceasta opiune. In special formatul ELF nu o utilizeaza. -r --reloc Afieaza intrarile de realocare ale fiierului. Daca se utilizeaza cu -d sau -D, realocarile sunt imprimate intercalate cu dezasamblarea. -R --dynamic-reloc Afieaza intrarile de realocare dinamica ale fiierului. Acest lucru este semnificativ numai pentru obiectele dinamice, cum ar fi anumite tipuri de biblioteci partajate. Ca i pentru -r, daca este utilizata cu -d sau -D, realocarile sunt imprimate intercalate cu dezasamblarea. -s --full-contents Afieaza coninutul complet al seciunilor, adesea utilizata in combinaie cu -j pentru a solicita seciuni specifice. In mod implicit, sunt afiate toate seciunile non-bss nevide. In mod implicit, orice seciune comprimata va fi afiata in forma sa comprimata. Pentru a vedea coninutul intr-o forma decomprimata, adaugai opiunea -Z la linia de comanda. -S --source Afieaza codul sursa intercalat cu dezasamblarea, daca este posibil. Implica -d. --show-all-symbols La dezasamblare, afieaza toate simbolurile care corespund unei anumite adrese, nu doar primul. --source-comment[=txt] La fel ca opiunea -S, dar toate liniile de cod sursa sunt afiate cu un prefix txt. De obicei, txt va fi un ir de comentarii care poate fi utilizat pentru a distinge codul de asamblare de codul sursa. Daca txt nu este furnizat, se va utiliza un ir implicit de ,,# " (simbolul hash urmat de un spaiu). --prefix=prefix Specifica prefixul de adaugat la rutele absolute atunci cand este utilizata cu -S. --prefix-strip=nivel Indica cate nume de directoare iniiale trebuie eliminate din rutele absolute integrate ,,hardwired". Nu are niciun efect fara --prefix=prefix. --show-raw-insn La dezasamblarea instruciunilor, imprima instruciunea in format hexazecimal, precum i in forma simbolica. Aceasta este valoarea implicita, cu excepia cazului in care se utilizeaza --prefix-addresses. --no-show-raw-insn La dezasamblarea instruciunilor, nu se imprima octeii instruciunii. Aceasta este valoarea implicita atunci cand se utilizeaza --prefix-addresses. --insn-width=laimea Afieaza laimea de octei pe o singura linie la dezasamblarea instruciunilor. --visualize-jumps[=color|=extended-color|=off] Vizualizeaza salturile care raman in interiorul unei funcii prin desenarea de grafica ASCII intre adresele de pornire i de destinaie. Argumentul opional =color adauga culoare la ieire folosind culorile simple ale terminalului. Alternativ, argumentul =extended-color va adauga culoare folosind culori pe 8 bii, dar acestea ar putea sa nu funcioneze pe toate terminalele. Daca este necesar sa dezactivai opiunea visualize-jumps dupa ce aceasta a fost activata anterior, atunci utilizai visualize-jumps=off. --disassembler-color=off --disassembler-color=terminal --disassembler-color=on|color|colour --disassembler-color=extened|extended-color|extened-colour Activeaza sau dezactiveaza utilizarea evidenierii color a sintaxei in rezultatul dezasamblarii. Comportamentul implicit este determinat prin intermediul unei opiuni de configurare in timp. Reinei ca nu toate arhitecturile accepta evidenierea colorata a sintaxei i, in funcie de terminalul utilizat, ieirea colorata poate sa nu fie lizibila. Argumentul on adauga culori folosind culorile simple ale terminalului. Argumentul terminal face acelai lucru, dar numai daca dispozitivul de ieire este un terminal. Argumentul extended-color este similar cu argumentul on, dar utilizeaza culori pe 8 bii. Este posibil ca acestea sa nu lucreze pe toate terminalele. Argumentul off dezactiveaza dezasamblarea colorata. -W[lLiaprmfFsoORtUuTgAckK] --dwarf[=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] Afieaza coninutul seciunilor de depanare DWARF din fiier, daca sunt prezente. Seciunile de depanare comprimate sunt decomprimate automat (temporar) inainte de a fi afiate. Daca una sau mai multe litere sau cuvinte opionale urmeaza dupa opiune, atunci vor fi descarcate numai acele tipuri de date. Literele i cuvintele se refera la urmatoarele informaii: "a" "=abbrev" Afieaza coninutul seciunii .debug_abbrev. "A" "=addr" Afieaza coninutul seciunii .debug_addr. "c" "=cu_index" Afieaza coninutul seciunilor .debug_cu_index i/sau .debug_tu_index. "f" "=frames" Afieaza coninutul brut al unei seciuni .debug_frame. "F" "=frames-interp" Afieaza coninutul interpretat al unei seciuni .debug_frame. "g" "=gdb_index" Afieaza coninutul seciunilor .gdb_index i/sau .debug_names. "i" "=info" Afieaza coninutul seciunii .debug_info. Nota: ieirea rezultata din aceasta opiune poate fi, de asemenea, restricionata prin utilizarea opiunilor --dwarf-depth i --dwarf-start. "k" "=links" Afieaza coninutul seciunilor .gnu_debuglink, .gnu_debugaltlink i .debug_sup, in cazul in care oricare dintre ele este prezenta. Afieaza, de asemenea, toate legaturile catre fiiere de obiecte dwarf separate (dwo), daca acestea sunt specificate prin atributele DW_AT_GNU_dwo_name sau DW_AT_dwo_name din seciunea .debug_info. "K" "=follow-links" Afieaza coninutul tuturor seciunilor de depanare selectate care se gasesc in fiiere de informaii de depanare separate i legate. Acest lucru poate avea ca rezultat afiarea mai multor versiuni ale aceleiai seciuni de depanare, daca aceasta exista in mai multe fiiere. In plus, atunci cand se afieaza atributele DWARF, in cazul in care se gasete un formular care face trimitere la un fiier de informaii de depanare separat, atunci va fi afiat i coninutul la care se face referire. Nota - in unele distribuii, aceasta opiune este activata in mod implicit. Ea poate fi dezactivata prin intermediul opiunii de depanare N. Valoarea implicita poate fi aleasa la configurarea binutils prin intermediul opiunilor --enable-follow-debug-links=yes sau --enable-follow-debug-links=no. Daca acestea nu sunt utilizate, atunci opiunea implicita este de a activa urmarirea legaturilor de depanare. Nota - daca suportul pentru protocolul debuginfod a fost activat atunci cand binutils a fost construit, atunci aceasta opiune va include, de asemenea, o incercare de a contacta orice server debuginfod menionat in variabila de mediu DEBUGINFOD_URLS. Rezolvarea acestei probleme ar putea dura ceva timp. Acest comportament poate fi dezactivat prin intermediul opiunii de depanare =do-not-use-debuginfod. "N" "=no-follow-links" Dezactiveaza urmarirea legaturilor catre fiiere de informaii de depanare separate. "D" "=use-debuginfod" Activeaza contactarea serverelor de depanare in cazul in care este necesar sa se urmeze legaturi de depanare. Acesta este comportamentul implicit. "E" "=do-not-use-debuginfod" Dezactiveaza contactarea serverelor de depanare atunci cand este necesar sa se urmareasca legaturi de depanare. "l" "=rawline" Afieaza coninutul seciunii .debug_line intr-un format brut. "L" "=decodedline" Afieaza coninutul interpretat al seciunii .debug_line. "m" "=macro" Afieaza coninutul seciunilor .debug_macro i/sau .debug_macinfo. "o" "=loc" Afieaza coninutul seciunilor .debug_loc i/sau .debug_loclists. "O" "=str-offsets" Afieaza coninutul seciunii .debug_str_offsets. "p" "=pubnames" Afieaza coninutul seciunilor .debug_pubnames i/sau .debug_gnu_pubnames. "r" "=aranges" Afieaza coninutul seciunii .debug_aranges. "R" "=Ranges" Afieaza coninutul seciunilor .debug_ranges i/sau .debug_rnglists. "s" "=str" Afieaza coninutul seciunilor .debug_str, .debug_line_str i/sau .debug_str_offsets. "t" "=pubtype" Afieaza coninutul seciunilor .debug_pubtypes i/sau .debug_gnu_pubtypes. "T" "=trace_aranges" Afieaza coninutul seciunii .trace_aranges. "u" "=trace_abbrev" Afieaza coninutul seciunii .trace_abbrev. "U" "=trace_info" Afieaza coninutul seciunii .trace_info. Nota: afiarea coninutului seciunilor .debug_static_funcs, .debug_static_vars i debug_weaknames nu este acceptata in prezent. --dwarf-depth=n Limiteaza extragerea seciunii ,,.debug_info" la n copii. Acest lucru este util numai cu --debug-dump=info. Valoarea implicita este de a imprima toate DIE-urile; valoarea speciala 0 pentru n va avea, de asemenea, acest efect. Cu o valoare diferita de zero pentru n, nu se afieaza DIE-uri la niveluri mai mari sau mai adanci decat n. Intervalul pentru n este bazat pe zero. --dwarf-start=n Afieaza numai DIE-urile care incep cu DIE numerotate n. Acest lucru este util numai cu --debug-dump=info. Daca este specificata, aceasta opiune va suprima afiarea oricaror informaii de antet i a tuturor DIE-urilor inainte de DIE numerotate n. Vor fi afiai numai fraii i copiii DIE specificai. Aceasta poate fi utilizata impreuna cu --dwarf-depth. --dwarf-check Activeaza verificari suplimentare pentru coerena informaiilor Dwarf. --ctf[=seciunea] Afieaza coninutul seciunii CTF specificate. Seciunile CTF conin la randul lor numeroase subseciuni, toate fiind afiate in ordine. In mod implicit, afieaza numele seciunii numite .ctf, care este numele emis de ld. --ctf-parent=membru In cazul in care seciunea CTF conine tipuri definite in mod ambiguu, aceasta va consta intr-o arhiva de mai multe dicionare CTF, toate motenind dintr-un dicionar care conine tipuri neechivoce. Acest membru se numete in mod implicit .ctf, la fel ca seciunea care il conine, dar este posibil sa se schimbe acest nume folosind funcia "ctf_link_set_memb_name_changer" in momentul realizarii legaturii. Atunci cand se examineaza arhivele CTF care au fost create de un editor de legaturi care utilizeaza funcia de schimbare a numelui pentru a redenumi membrul arhivei parinte, se poate utiliza --ctf-parent pentru a specifica numele utilizat pentru membrul parinte. --ctf-parent-section=seciune Aceasta opiune va permite sa alegei o seciune complet diferita pentru dicionarul parinte CTF care conine tipuri neambigue decat pentru dicionarele copil care conin restul ambiguu. Editorul de legaturi nu emite obiecte ELF structurate astfel, dar unii editori de legaturi de la teri pot emite astfel de obiecte. De asemenea, este convenabil sa inspectai CTF scris ca mai multe fiiere brute pentru a le compune cu objcopy, care le poate pune in seciuni ELF diferite, dar nu in membri diferii ai unui singur dicionar CTF. --sframe[=seciunea] Afieaza coninutul seciunii SFrame specificate. In mod implicit, se afieaza numele seciunii numite .sframe, care este numele emis de ld. -G --stabs Afieaza coninutul complet al oricarei seciuni solicitate. Afieaza coninutul seciunilor .stab i .stab.index i .stab.excl dintr-un fiier ELF. Aceasta opiune este utila numai pe sisteme (cum ar fi Solaris 2.0) in care ".stab" intrarile tabelei de simboluri de depanare sunt incluse intr-o seciune ELF. In majoritatea celorlalte formate de fiiere, intrarile din tabelul de simboluri de depanare sunt intercalate cu simbolurile de legatura i sunt vizibile in ieirea --syms. --start-address=adresa Incepe afiarea datelor la adresa specificata. Aceasta afecteaza ieirea opiunilor -d, -r i -s. --stop-address=adresa Oprete afiarea datelor la adresa specificata. Aceasta afecteaza ieirea opiunilor -d, -r i -s. -t --syms Afieaza intrarile din tabelul de simboluri al fiierului. Aceasta este similara cu informaiile furnizate de programul nm, dei formatul de afiare este diferit. Formatul de ieire depinde de formatul fiierului care este descarcat, dar exista doua tipuri principale. Unul arata astfel: [ 4](sec 3)(fl 0x00)(ty 0)(scl 3) (nx 1) 0x00000000 .bss [ 6](sec 1)(fl 0x00)(ty 0)(scl 2) (nx 0) 0x00000000 fred unde numarul din interiorul parantezelor drepte este numarul intrarii din tabelul de simboluri, numarul sec este numarul seciunii, valoarea fl sunt biii fanionului simbolului, numarul ty este tipul simbolului, numarul scl este clasa de stocare a simbolului i valoarea nx este numarul de intrari auxiliare asociate simbolului. Ultimele doua campuri sunt valoarea simbolului i numele acestuia. Celalalt format de ieire comun, intalnit de obicei cu fiierele bazate pe ELF, arata astfel: 00000000 l d .bss 00000000 .bss 00000000 g .text 00000000 fred Aici, primul numar este valoarea simbolului (uneori denumita adresa acestuia). Urmatorul camp este de fapt un set de caractere i spaii care indica biii fanionului care sunt activai pe simbol. Aceste caractere sunt descrise mai jos. Urmeaza seciunea cu care este asociat simbolul sau *ABS* daca seciunea este absoluta (adica nu este legata de nicio seciune), sau *UND* daca seciunea este menionata in fiierul care face obiectul descarcarii, dar nu este definita acolo. Dupa numele seciunii urmeaza un alt camp, un numar, care pentru simbolurile comune este alinierea, iar pentru alte simboluri este dimensiunea. La sfarit este afiat numele simbolului. Caracterele fanionului sunt imparite in 7 grupuri, dupa cum urmeaza: "l" "g" "u" "!" Simbolul este local (l), global (g), global unic (u), nici global, nici local (un spaiu) sau atat global, cat i local (!). Un simbol poate fi nici local, nici global dintr-o varietate de motive, de exemplu, pentru ca este utilizat pentru depanare, dar este probabil un indiciu al unei erori daca este vreodata atat local, cat i global. Simbolurile globale unice sunt o extensie GNU la setul standard de legaturi de simboluri ELF. Pentru un astfel de simbol, editorul de legaturi dinamice se va asigura ca in intregul proces este utilizat un singur simbol cu acest nume i tip. "w" Simbolul este slab (w) sau forte (un spaiu). "C" Simbolul denota un constructor (C) sau un simbol obinuit (un spaiu). "W" Simbolul este un avertisment (W) sau un simbol normal (un spaiu). Numele unui simbol de avertizare este un mesaj care urmeaza sa fie afiat daca simbolul care urmeaza simbolului de avertizare este vreodata menionat. "I" "i" Simbolul este o referina indirecta la un alt simbol (I), la o funcie care urmeaza sa fie evaluata in timpul procesarii realocarii (i) sau la un simbol normal (un spaiu). "d" "D" Simbolul este un simbol de depanare (d) sau un simbol dinamic (D) sau un simbol normal (un spaiu). "F" "f" "O" Simbolul este numele unei funcii (F) sau al unui fiier (f) sau al unui obiect (O) sau doar un simbol normal (un spaiu). -T --dynamic-syms Imprima intrarile din tabelul de simboluri dinamice al fiierului. Acest lucru este semnificativ numai pentru obiectele dinamice, cum ar fi anumite tipuri de biblioteci partajate. Aceasta este similara cu informaiile furnizate de programul nm atunci cand i se da opiunea -D (--dynamic). Formatul de ieire este similar cu cel produs de opiunea --syms, cu excepia faptului ca inainte de numele simbolului este inserat un camp suplimentar, care ofera informaii despre versiunea asociata simbolului. Daca versiunea este versiunea implicita care urmeaza sa fie utilizata la rezolvarea referinelor fara versiune ,,unversioned " la simbol, atunci este afiata aa cum este, altfel este pusa intre paranteze. --special-syms La afiarea simbolurilor, include simbolurile pe care inta le considera a fi speciale intr-un anumit fel i care, in mod normal, nu ar fi de interes pentru utilizator. -U [d|i|l|e|x|h] --unicode=[default|invalid|locale|escape|hex|highlight] Controleaza afiarea caracterelor multi-octet codificate UTF-8 in iruri de caractere. In mod implicit (--unicode=default), acestea nu beneficiaza de un tratament special. Opiunea --unicode=locale afieaza secvena in limba locala curenta, care poate sa le suporte sau nu. Opiunile --unicode=hex i --unicode=invalid le afieaza sub forma de secvene de octei hexazecimali, incadrate fie de paranteze unghiulare, fie de paranteze drepte. Opiunea --unicode=escape le afieaza ca secvene de eludare (\uxxxx), iar opiunea --unicode=highlight le afieaza ca secvene de eludare evideniate cu rou (daca sunt acceptate de dispozitivul de ieire). Culoarea are rolul de a atrage atenia asupra prezenei secvenelor unicode acolo unde nu ar fi de ateptat. -V --version Afieaza numarul versiunii lui objdump i iese. -x --all-headers Afieaza toate informaiile de antet disponibile, inclusiv tabelul de simboluri i intrarile de realocare. Utilizarea -x este echivalenta cu specificarea tuturor opiunilor -a -f -h -p -r -t. -w --wide Formateaza unele linii pentru dispozitivele de ieire care au mai mult de 80 de coloane. De asemenea, nu truncheaza numele simbolurilor atunci cand acestea sunt afiate. -z --disassemble-zeroes In mod normal, rezultatul dezasamblarii va omite blocurile de zerouri. Aceasta opiune direcioneaza dezasamblatorul sa dezasambleze aceste blocuri, la fel ca orice alte date. -Z --decompress Opiunea -Z este menita sa fie utilizata in combinaie cu opiunea -s. Aceasta instruiete objdump sa decomprime orice seciune comprimata inainte de a afia coninutul acesteia. @fiier Citete opiunile liniei de comanda din fiier. Opiunile citite sunt inserate in locul opiunii originale @fiier. Daca fiier nu exista sau nu poate fi citit, atunci opiunea va fi tratata literal i nu va fi eliminata. Opiunile din fiier sunt separate prin spaii albe. Un caracter de spaiere poate fi inclus intr-o opiune prin includerea intregii opiuni intre ghilimele simple sau duble. Orice caracter (inclusiv o bara oblica inversa) poate fi inclus prin prefixarea caracterului care urmeaza sa fie inclus cu o bara oblica inversa. fiier poate conine la randul sau opiuni @fiier suplimentare; orice astfel de opiuni vor fi procesate in mod recursiv. CONSULTAI I nm(1), readelf(1), and the Info entries for binutils. DREPTURI DE AUTOR Drepturi de autor (C) 1991-2025 Free Software Foundation, Inc. Se acorda permisiunea de a copia, distribui i/sau modifica acest document in conformitate cu termenii Licenei GNU Free Documentation, versiunea 1.3 sau orice versiune ulterioara publicata de Free Software Foundation; fara seciuni invariante, fara texte de coperta i fara texte de contra coperta. O copie a licenei este inclusa in seciunea intitulata ,,GNU Free Documentation License". TRADUCERE Traducerea in limba romana a acestui manual a fost facuta de Remus- Gabriel Chelu Aceasta traducere este documentaie gratuita; citii Licena publica generala GNU Versiunea 3 sau o versiune ulterioara cu privire la condiii privind drepturile de autor. NU se asuma NICIO RESPONSABILITATE. Daca gasii erori in traducerea acestui manual, va rugam sa trimitei un e-mail la . binutils-2.44 8 februarie 2025 OBJDUMP(1)