GDB (taip pat žinomas kaip "Debugger" GNU Project) yra atvirojo kodo ir nemokama komandinės eilutės programinė įranga, kuri leidžia vartotojams ir programuotojams pamatyti, kas vyksta "viduje" kitoje programoje, o tai yra įvykdytas, arba kodėl programa tam tikru momentu sutrinka.
Savybės iš pirmo žvilgsnio
Pagrindinės funkcijos apima keturias skirtingas technologijas, padedančias kūrėjams pažeisti klaidas, paleisti programą ir nurodyti bet kokius dalykus, galinčius paveikti jo elgseną, sustabdyti programą nurodytomis sąlygomis, apžiūrėti žurnalus, kai programa sudaužta, palaipsniui keisti dalykus taip pat palaiko programų, parašytų įvairiose programavimo kalbose, įskaitant C, C ++, Pascal, derinimo programas. , "Ada", "Objective-C" ir daugelis kitų.
Tai yra komandinės eilutės programa
GNU Project debugger yra visada bus komandų eilutės programa. Norėdami jį naudoti, turite paleisti & gdb & rdquo; komandą terminalo emuliatorius, tada vykdykite & ldquo; pagalbą & rdquo; komanda (be kabučių) gdb eilutė. Be to, taip pat galite įvesti & ldquo; padėti viską & rdquo; komandą peržiūrėti visų komandų sąrašą, įveskite "pagalba", po kurio nurodykite komandą, kad galėtumėte peržiūrėti visą dokumentaciją, įrašykite "pagalba", po kurios eina klasės pavadinimas, norėdami peržiūrėti šios grupės komandų sąrašą, kad galėtumėte įvesti "apropos word" už komandas, susijusias su žodžiu.
Komandų klasių sąrašas
Įvedę & ldquo; pagalbą & rdquo; kaip aprašyta aukščiau, pamatysite komandų klasių sąrašą, įskaitant slapyvardžius (rodys kitų komandų aliases), taškus (tam tikriems taškams sustabdyti programą), duomenis (duomenų tikrinimo), failus (tiriant failus) , vidaus (aptarnavimo komandos), neaiškios (neaiškios funkcijos), paleisti (programos paleidimui), krūviui (aptikti krūvą), būseną (statuso užklausoms), paramą (palaikymo priemonėms), trapiktainius (norint atsekti programos vykdymą be sustabdyti programą) ir vartotojo apibrėžtas (vartotojo apibrėžtas komandas).
Palaikomos aparatinės įrangos platformos ir operacinės sistemos
"GDB" buvo sukurtas iš kompensacijos, kad būtų tarpplatforminė programa, veikianti pagrindinėse operacinėse sistemose, tokiose kaip "Microsoft Windows" ir keletas populiariausių variantų "Linux / UNIX".
Kas naujo šiame leidime:
- PR gdb / 22824 (klaidinanti naujos "Python" funkcijos aprašymas GDB 8.1 NEWS byloje)
- PR gdb / 22849 ("ctrl-c" neveikia išplėstiniame nuotoliniame kompiuteryje)
- PR gdb / 22907 ([regresija] gdbserver neveikia tik su failų pavadinimuose)
- PR gdb / 23028 (prieštaringas vcvtpd2dq išardymas)
- PR gdb / 23053 (Fix -D_GLIBCXX_DEBUG gdb-add-index regression)
- PR gdb / 23127 ([AArch64] GDB negali būti naudojamas programinės įrangos, kuri naudoja aukštus virtualius adresus, derinimui)
- PR serveris / 23158 ("gdbserveris" neveikia "Windows" sistemoje)
- PR išjungimo taškai / 23210 ([8.1 / 8.2 regresija] Netikėtas perėjimo taško adresas pritaikytas nuo 0xf7fe7dd3 iki 0xfffffff7f7dd3)
Kas naujo versijoje 8.1:
- Nutraukimo taškai C + + funkcijose visada nustatomi pagal numatytuosius nustatymus ("laukinis" atitikimas);
- Parama įterpiant tarpinių taškų funkcijoms, pažymėtoms C + + ABI žymomis;
- Tikslinė plūduriuojančio taško aritmetinė emuliacija ekspresijos įvertinimo metu (reikalaujama MPFR 3.1 ar naujesnės versijos);
- Įvairūs "Python" scenarijų pratęsimai;
- Pagerintas rūdžių palaikymas; visų pirma, tradico objektai dabar gali būti tikrinami, kai derinamas Rusto kodas;
- GDB nebe daro prielaidų apie simbolių tipą be informacijos derinimo, kad būtų išvengta klaidingų ir dažnai klaidinančių rezultatų;
- "Įgalinti" ir "išjungti" komandos dabar pritaria tam tikroms pertraukties taškų vietoms;
- Nauja komanda "starti", kad paleistumėte programą pirmoje instrukcijoje;
- Nauja komanda "sugadinti", įterpiant keletą ribinių taškų per reguliaraus išraiškos modelį (reikia "Python");
- "ptype" komanda dabar palaiko spausdinimo išlyginimą ir laukų dydį struktūroje;
- "gcore" komanda dabar palaiko dempingą visų atminties kartografavimui ("-a" komandinės eilutės parinktis);
- Nauji TUI vieno klavišo režimo spartieji klavišai: "i" - "stepi", o nexti - "o";
- "GDBserver" patobulinimai:
- Parama aplinkos kintamųjų perdavimui "GDBserver";
- Parama paleidžiant mažesnius procesus naudojant nurodytą pradinę darbo katalogą;
- "Unix" sistemose teikiama parama plėtrai ir kintamam subalansuotos komandinės eilutės argumentų pakeitimas;
- Įvairūs užbaigimo patobulinimai;
- komanda, naudojama sudaryti ir įterpti kodą komandą "sudaryti", dabar yra konfigūruojama;
- Nauja "-readnever" komandinės eilutės parinktis, siekiant pagreitinti GDB paleidimą, kai nereikia derinti informacijos;
- Parama tokioms naujoms savoms konfigūracijoms:
- FreeBSD / aarch64 (aarch64 * - * - freebsd *);
- FreeBSD / rankos (rank * - * - freebsd *);
- Parama šiems naujiems tikslams:
- FreeBSD / aarch64 (aarch64 * - * - freebsd *);
- FreeBSD / rankos (rank * - * - freebsd *);
- OpenRISC ELF (arba1k * - * - elfas)
- Pašalinta parama šiems tikslams ir vietinėms konfigūracijoms:
- Solaris2 / x86 (i? 86 - * - solaris2. [0-9]);
- Solaris2 / sparc (sparc * - * - solaris2. [0-9]);
Kas naujo versijoje:
- Dabar kuriant šią GDB versiją reikalingi šie įrankiai:
- C + + 11 kompiliatorius (pvz., GCC 4.8 ar vėlesnis);
- GNU versija 3.81 ar naujesnė.
- Pakeitimai šiame leidinyje apima:
- "C ++": parama "rvalue" nuorodoms
- "Python" scenarijaus patobulinimai:
- Naujos funkcijos, skirtos paleisti, sustabdyti ir pasiekti įrašytą "btrace" įrašą.
- Rvalue reference support į gdb.Type.
- GDB komandų interpretuotojas:
- Naudotojo komandos dabar priima neribotą skaičių argumentų.
- "Eval" & quot; dabar komanda išplečia naudotojo apibrėžtus argumentus.
- DWARF 5 versijos palaikymas
- (atkreipkite dėmesį, kad jo indeksas .debug_names dar nepalaikomas).
- GDB / MI patobulinimai:
- Nauja failų sąrašo bendrinimo bibliotekų komanda, skirta sąraše bendrai naudojamų bibliotekų programoje.
- Nauja komanda "ištrinti iš blykstės", skirta ištrinti atminties.
- Parama saviesiems FreeBSD / MIPS (mips * - * - freebsd)
- Parama šiems tikslams:
- Synopsys ARC (arc * - * - elf32)
- FreeBSD / mips (mips * - * - freebsd)
- Įvairūs patobulinimai:
- Komandų eilutės peradresavimas dabar palaikomas "MS-Windows" kompiuteriuose.
- Siūlo pavadinimų palaikymas MS-Windows.
- Palaikymas PKU registro GNU / Linux.
- Parama Target aprašymams sparc32 ir sparc64.
- Nauja komanda GDB / CLI, kad ištrintumėte atminties kortelę
- "rdrand" ir "rdseed" instrukcijos įrašyti / atkurti palaikymą.
- Atliktas šių funkcijų palaikymas:
- "Java" programų, sukurtų naudojant "gcj", palaikymas
- Parama šioms konfigūracijoms:
- FreeBSD / alfa (alpha * - * - freebsd *)
- GNU / kFreeBSD / alpha (alpha * - * - kfreebsd * -gnu)
Kas naujo versijoje 7.9.1:
- PR build / 18033 gdb / iq2000-tdep.c ir gdb / compile / compile - *. c)
- PR build / 18298 (komanda "kompiliuoti" negali rasti kompiliatoriaus, jei įrankiai sukonfigūruoti su tripletu, o ne keturiais)
- PR tui / 18311 (atsitiktinis SEGV, rodydamas registrus TUI režimu)
- "PR python" / 18299 (išimtis registruojant pasaulinį gana spausdintuvą geranoriškai)
- "PR python" / 18066 (argumentas "žodis" atrodo sutrikdytas "Command.complete" (tekstas, žodis))
- PR pascal / 17815 (Fcal pascal elgesio klasių laukų testcase)
- PR python / 18285 (ptype expr-with-xmethod sukelia SEGV)
Kas naujo versijoje 7.9:
- "Python scripting" patobulinimai.
- Šaltinio kodo sudarymas ir įvedimas į žemesnę.
- Naujos komandos, parinktys, patogumo kintamieji / parinktys.
- MIPS SDE palaikymas (mips * -sde * -elf *).
- Geresnis signalų apdorojimas, kai derinamos srieginės programos.
- PR symtab / 17642 ([7.8 regresija] internal)
Kas naujo -error: resolve_dynamic_struct: teiginys "TYPE_NFIELDS (tipas)> 0" nepavyko.)
- PR binutils / 17677 (_bfd_elf_get_synthetic_symtab veikia O (n ^ 2) sudėtingumo)
- PR gdb / 16215 (SPARC: negalima apskaičiuoti šio rėmelio CFA)
- PR gdb / 17525 ("target-async": "break-point" komandos nevykdomos, kai programa paleidžiama -x scenarijų)
- PR cli / 17828 ([7.8 regresija] -batch -ex r terminus)
- PR python / 17364 (Reikia geresnių spausdintuvų pavadinimų į bound_registers.py)
- PR build / 17104 (CFLAGS = "Wall-Wextra" gdb / configure - with-babeltrace nepavyksta)
- PR gdb / 17345 ("babeltrace" (1.1.2 ir vėliau) skundžiasi dėl GDB sukurtų ctf duomenų)
- PR build / 17298 (gcore: nepavyko gauti registro: tokio proceso nėra)
- PR python / 17342 ("Xmethod Python" nėra suderinamas su "Python 3")
- PR python / 17355 (Crash on Python frame filters with unreadable arg)
- PR guile / 17367 (gildijos kelio apskaičiavimas neteisingas, kai pkg-config scenarijus pateikiamas kaip arg prie -with-guile)
- PR gdb / 17247 ("gdb įšaldymas" programoje su įvairiomis sriegomis)
- PR gdb / 17347 (Regresija: GDB sustabdytas paleisti su pridėtu procesu)
- PR gdb / 17407 (regresija Linux vDSO skaitymui)
- PR server / 17457 (aarch64 / gdbserver: rodomas klaidingas plūduriuojančių taškų registras)
- PR server / 17487 (state-> dr_control_mirror == 0 nepavyko patvirtinti "gdbserver" sistemoje "Windows")
- PR gdb / 17472 (su anotacijomis, įvedama vykdant įžengimų gedimų readline / gdb)
- PR gdb / 17471 (pakartojant fono komandą daro įžvalgą)
- PR cli / 17300 (avarija be sustojimo režimu su tęsia -a & (readline_callback_read_char () skambinama be apdorojimo!))
- PR python / 17372 (python pakimba rodydami pagalbą ())
- PR python / 17408 (../../gdb/infrun.c:5256: vidinė klaida: switch_back_to_stepped_thread: patvirtinimas `! schedlock_applies (1) 'nepavyko.)
- "Python" scenarijų patobulinimai.
- Naujos komandos, parinktys, patogumo kintamieji / parinktys.
- Nuotolinio protokolo ir "GDBserver" patobulinimai.
- Naujos tikslinės konfigūracijos ("PowerPC64" GNU / Linux "mažoji versija").
- Išplėskite patobulinimus.
- "ISO C99" kintamojo ilgio automatiniai masyvai.
- "palyginti skirsniai" & quot; komanda dabar dirba su visais tikslais.
- "Tikslinė vietinė" & quot; dabar komanda prisijungia prie vietinio tikslo.
- Pagerinta "Python" scenarijų palaikymas.
- Kai kurie C ++ patobulinimai.
- Naujos komandos, parinktys, patogumo kintamieji / parinktys.
- Keletas naujų GDB / MI komandų ir patobulinimų.
- Nuotolinio protokolo ir "GDBserver" patobulinimai.
- Naujos tikslinės konfigūracijos (Nios II, TI MSP430).
- GDB Windows x64 atkūrimo duomenų palaikymas.
- SystemTap SDT zondai palaikomi "AArch64 GNU / Linux".
- CTF (Bendras trajektorijos formatas) palaikymas.
- Nauji scenarijai gcore ir gdb-add-index.sh.
- Patobulintas "arm * -linux" įrašas / atkūrimo palaikymas.
- Pašalinta parama a.out NetBSD ir OpenBSD pasenusioms konfigūracijoms. ELF šių konfigūracijų variantai palaikomi.
- "set | show remote control" & quot; komandos "show show serial baudas" nebenaudoja "
- PR breakpoint / 16251 ("AArch64 hardware breakpoint error after šakutė)
- PR gdb / 16303 ("GDB 7.6.1 neveikia su" Binutils 2.24 "su" MIPS16 "ir" microMIPS ")
- PR tdep / 15420 (Negalima derinti sriegiuotų programų naujesnėse x86-solaris versijose - Solaris 10, naujinimas 10 ar naujesnė versija)
- PR nuotolinis / 15455 (QTro nuotolinio paketo sulūžimas)
- PR build / 15476 (Sukurkite nesėkmę dėl nepakankamo enum tipo utils.h)
- PR serveris / 15594 (tls palaikymas 64 x 32 x86 gdbserveryje netaiko adreso iki 64 bitų)
- PR server / 15075 (dprintf inteferes with & quot; next & quot;)
- PR serveris / 15434 ("dprintf" naudoja sinchroninį "tęsimą" net ne "stop" režimu)
- PR tui / 14880 (suskaidyto registro išdėstyme, dėl to verta patvirtinti, kad nėra vertės. c)
- PR c ++ / 15519 (GDB 7.6 yra 94 kartus lėtesnis nei GDB 7.5.1 naudojant tam tikrą pagrindinę failą)
- PR gdb / 15837 (GDB spausdina vietinių kintamųjų įrašo vertes)
- PR gdb / 15415 (gdb sprendžia simbolines nuorodas, kai praeina argv [0])
- PR cli / 15603 (CTRL-C nebegalima nutraukti prastesnės)
- PR gdb / 15604 (gdbserver lizdo nuotėkio 7,5 regresija)
- Palaikykite kalbos palaikymą
- naujus tikslus (x32 ABI, microMIPS, Renesas RL78, HP OpenVMS IA64).
- Daugiau "Python" scenarijų patobulinimų.
- SDT (statinio apibrėžimo sekimo) zondai palaikomi naudojant SystemTap zondus.
- "GDBserver" patobulinimai ("stdio" jungtys, taškinės padėties nustatymo tiksliniai aspektai, nuotolinio protokolo patobulinimai).
- Kitos įvairios patobulinimai (gebėjimas sustabdyti kai shared library yra pakrautas / iškrauti, dinamiška printf ir tt).
- Grįžtamoji derinimas su ARM.
- Dvejetainis "gdbtui" buvo atsisakyta ir nebegalima statyti. Naudokite & quot; gdb-tui & quot; vietoj
- Dviprasmiški linespecs dabar tvarkomi nuosekliau,
- Neįdomios funkcijos ir failai dabar gali būti praleidžiami pasikartojant su & quot; skip funkcija & quot; ir & quot; praleisti failą & quot; komandos.
- Pridėta komandos, skirtos nuotolinio tikslinio aparatūros žiūrėjimo taško nustatymo ir maksimalios ribos nustatymui.
- "Python" scenarijus buvo gerokai patobulintas.
- Padaryta daug kitų patobulinimų, klaidų taisymų ir bendrų pakeitimų.
- Parama naujiems tikslams (įskaitant treniruoklius):
- "Xilinx MicroBlaze"
- "Renesas RX"
- Pagrindinės naujos funkcijos:
- Daugelio programų derinimas, leidžiantis atkūrėjui valdyti daugiau nei
- viena programa toje pačioje GDB sesijoje.
- Nepriklausomos vykdytojo pozicijos (PIE) derinimas.
- Jame taip pat yra daug patobulinimų ir klaidų taisymų, įskaitant:
- "Python" palaikymas buvo išplėstas
- C + + palaikymo patobulinimai (vardų sritis, mesti operatoriai, klaidų taisymai)
- "Tracepoint" palaikymo patobulinimai.
- Proceso įrašų patobulinimai (įrašykite / atkurkite vykdymo žurnalą, aparatūrą
- laikrodžių palaikymas)
- Nuotolinio protokolo patobulinimai ("Linux" branduolio derinimas, nauji paketai
- "tracepoint" palaikymui)
Kas naujo 7.8.1 versijoje:
Kas naujo
Kas naujo 7.7 versijoje:
Kas naujo versijoje 7.6.1:
Kas naujo 7.5 versijoje:
Kas naujo versija 7.4.
Kas naujo 7.1 versijoje:
Komentarai nerastas