GDB (også kjent som GNU Project debugger) er en åpen kildekode og gratis kommandolinjeprogramvare som gjør det mulig for brukere og utviklere å se hva som skjer "inne i et annet program, mens det er henrettet, eller hvorfor et program krasjer på et bestemt tidspunkt.
Funksjoner med et blikk
Nøkkelfunksjoner inkluderer fire forskjellige teknikker for å hjelpe utviklere med å få feil i handlingen, starte et program og spesifisere noe som kan påvirke oppførselen, stoppe et program på bestemte vilkår, undersøke loggene når programmet krasjer, gradvis endre ting i et program for å eksperimentere med å korrigere effekten av ett problem, og fortsett ved å lære om en annen feil. Den støtter også feilsøking av programmer skrevet i et bredt spekter av programmeringsspråk, inkludert C, C ++, Pascal , Ada, Objective-C, og mange andre.
Det er en kommandolinjeprogram
GNU Project debugger er en vil alltid være en kommandolinjeprogram. For å bruke den må du kjøre & ldquo; gdb & rdquo; kommandoen i en terminalemulator, og kjør deretter & ldquo; hjelpen & rdquo; kommandoen (uten anførselstegn) en gdb-spørringen. I tillegg kan du også skrive inn & ldquo; hjelp alle & rdquo; kommando for å vise en liste over alle kommandoer, skriv "hjelp" etterfulgt av kommandoenavn for å se fullstendig dokumentasjon, skriv "hjelp" etterfulgt av et klassenavn for å vise en liste over kommandoer i den klassen, for å skrive "apropos word" for å søke for kommandoer relatert til "ord".
Liste over kommandoklasser
Etter å ha skrevet & ldquo; hjelpen & rdquo; kommando som beskrevet ovenfor, vil du se en liste over klasser av kommandoer, inkludert aliaser (viser aliaser av andre kommandoer), brytepunkter (gjør at programmet stopper på bestemte punkter), data (for å undersøke data), filer (for å undersøke filer) , interne (vedlikeholdskommandoer), obskure (obskure funksjoner), kjører (for å kjøre programmet), stabling (for å undersøke stabelen), status (for statusforespørsler), støtte (for støttesteder) stopper programmet) og brukerdefinerte (brukerdefinerte kommandoer).
Støttede maskinvareplattformer og operativsystemer
GDB er designet fra offset til å være et tverrplattformsprogram, som kjører på vanlige operativsystemer som Microsoft Windows og noen av de mest populære Linux / UNIX-varianter. Den støttes på både 32-biters og 64-bits maskinvareplattformer.
Hva er nytt i denne versjonen:
- PR gdb / 22824 (villedende beskrivelse av ny rbreak Python-funksjon i GDB 8.1 NEWS-fil)
- PR gdb / 22849 (ctrl-c virker ikke i ekstern fjernkontroll)
- PR gdb / 22907 ([Regresjon] gdbserver virker ikke med filnavn-bare binære filer)
- PR gdb / 23028 (inkonsekvent demontering av vcvtpd2dq)
- PR gdb / 23053 (Fix -D_GLIBCXX_DEBUG gdb-add-index regresjon)
- PR gdb / 23127 ([AArch64] GDB kan ikke brukes til feilsøkingsprogramvare som bruker høye virtuelle adresser)
- PR-server / 23158 (gdbserver ikke lenger funksjonell på Windows)
- PR breakpoints / 23210 ([8.1 / 8.2 Regression] Bogus Breakpoint-adresse justert fra 0xf7fe7dd3 til 0xfffffffff7fe7dd3)
Hva er nytt i versjon 8.1:
- Bruddpunkter på C + + -funksjoner er nå satt som standard på alle områder ("vill" samsvarer);
- Støtte for å sette inn breakpoints på funksjoner merket med C ++ ABI-koder;
- Mål flytende-punkt aritmetisk emulering under ekspresjonsevaluering (krever MPFR 3.1 eller nyere);
- Forskjellige Python Scripting forbedringer;
- Forbedret ruststøtte; Spesielt kan Trait-objekter nå bli inspisert når feilsøking Rust-kode;
- GDB gjør ikke lenger antagelser om typen symboler uten feilsøkingsinformasjon for å unngå å produsere feilaktige og ofte forvirrende resultater;
- Kommandoerene "aktiver" og "deaktiver" aksepterer nå et utvalg av brytpunktssteder;
- Ny start-kommando for å starte programmet ved første instruksjon;
- Ny "rbreak" -kommando for å sette inn en rekke bruddpunkter via et vanlig uttrykksmønster (krever Python);
- Kommandoen 'ptype' støtter nå utskrift av forskyvning og størrelse på feltene i en struktur;
- Kommandoen 'gcore' støtter nå dumping av alle minnekortleggingene ('-a' kommandolinjevalg);
- Nye snarveier for TUI Single-Key-modus: 'jeg' for stepi og 'o' for nexti;
- Forbedringer av GDBserver:
- Støtte for overføring av miljøvariabler til GDBserver;
- Støtte for å starte underordnede prosesser med en spesifisert startkatalog;
- På Unix-systemer, støtte for globbing-ekspansjon og variabel substitusjon av argumenter med underordnet kommandolinje;
- Forskjellige forbedringsforbedringer;
- Kommandoen som brukes til å kompilere og injisere kode med kommandoen 'compile', kan nå konfigureres;
- Ny '--readnever' kommandolinjealternativ for å øke hastigheten på GDB-oppstart når feilsøkingsinformasjon ikke er nødvendig;
- Støtte for følgende nye innfødte konfigurasjoner:
- FreeBSD / aarch64 (aarch64 * - * - freebsd *);
- FreeBSD / arm (arm * - * - freebsd *);
- Støtte for følgende nye mål:
- FreeBSD / aarch64 (aarch64 * - * - freebsd *);
- FreeBSD / arm (arm * - * - freebsd *);
- OpenRISC ELF (or1k * - * - elf)
- Fjernet støtte for følgende mål og innfødte konfigurasjoner:
- Solaris2 / x86 (jeg? 86 - * - solaris2. [0-9]);
- Solaris2 / sparc (sparc * - * - solaris2. [0-9]);
Hva er nytt i versjon:
- Å bygge denne versjonen av GDB krever nå følgende verktøy:
- En C ++ - 11 kompilator (for eksempel GCC 4.8 eller nyere);
- GNU gjør versjon 3.81 eller nyere.
- Endringer i denne utgaven inkluderer:
- C ++: Støtte for rvalue referanser
- Python-skriptforbedringer:
- Nye funksjoner for å starte, stoppe og få tilgang til et løpende btrace-opptak.
- Rvalue referansestøtte i gdb.Type.
- GDB kommandoer tolk:
- Brukerkommandoer aksepterer nå et ubegrenset antall argumenter.
- Den "eval" kommandoen utvider nå brukerdefinerte argumenter.
- DWARF versjon 5-støtte
- (merk at indeksen .debug_names ikke støttes ennå).
- Forbedringer i GDB / MI:
- Kommandoen New-list-list-shared-libraries for å liste de delte bibliotekene i programmet.
- New-target-flash-erase-kommandoen, for å slette flashminne.
- Støtte for native FreeBSD / mips (mips * - * - freebsd)
- Støtte for følgende mål:
- Synopsys ARC (bue * - * - elf32)
- FreeBSD / mips (mips * - * - freebsd)
- Diverse forbedringer:
- Omdirigering av kommandolinje støttes nå på MS-Windows-verter.
- Støtte for trådnavn på MS-Windows.
- Støtte for PKU-registret på GNU / Linux.
- Støtte for målbeskrivelser på sparc32 og sparc64.
- Ny GDB / CLI-kommando for å slette flashminne
- rdrand og rdseed instruksjoner for rekord / replay-støtte.
- Støtte for følgende funksjoner er fjernet:
- Støtte for Java-programmer kompilert med gcj
- Støtte for følgende konfigurasjoner:
- FreeBSD / alpha (alfa * - * - freebsd *)
- GNU / kFreeBSD / alpha (alfa * - * - kfreebsd * -gnu)
Hva er nytt? i versjon 7.9.1:
- PR bygge / 18033 gdb / iq2000-tdep.c og gdb / compile / compile - *. c)
- PR build / 18298 ("compile" -kommandoen kan ikke finne kompilatoren hvis verktøyene er konfigurert med triplet i stedet for firedoblet)
- PR tui / 18311 (Tilfeldig SEGV når du viser registre i TUI-modus)
- PR python / 18299 (unntak når du registrerer en global pen skriver i verbose modus)
- PR python / 18066 (argument "ord" virker ødelagt i Command.complete (tekst, ord))
- PR pascal / 17815 (Fix pascal oppførsel for klassefelt med testcase)
- PR python / 18285 (ptype expr-with-xmethod forårsaker SEGV)
Hva er nytt i versjon 7.9:
- Python-skriptforbedringer.
- Kildekompilering og injeksjon i underordnet.
- Nye kommandoer, alternativer, bekvemmelighetsvariabler / alternativer.
- MIPS SDE-støtte (mips * -sde * -elf *).
- Bedre håndtering av signaler ved feilsøking av gjengede programmer.
Hva er nytt i versjon 7.8.2:
- PR symtab / 17642 -ror: resolve_dynamic_struct: Påstanden `TYPE_NFIELDS (type)> 0 'mislyktes.)
- PR binutils / 17677 (_bfd_elf_get_synthetic_symtab kjører i O (n ^ 2) kompleksitet)
- PR gdb / 16215 (SPARC: kan ikke beregne CFA for denne rammen)
- PR gdb / 17525 (mål-async: brytpunktskommandoer utføres ikke når programmet kjøres fra -x script)
- PR cli / 17828 ([7,8 regresjon] -batch -ex r bryter terminal)
Hva er nytt i versjon 7.8.1:
- PR python / 17364 (Trenger bedre skrivernavn i bound_registers.py)
- PR build / 17104 (CFLAGS = "-Wall -Wextra" gdb / confgure --with-babeltrace mislykkes)
- PR gdb / 17345 (babeltrace (1.1.2 og senere) klager over ctf-data generert av GDB)
- PR build / 17298 (gcore: Kunne ikke få registre: Ingen slik prosess)
- PR python / 17342 (Xmethod Python er ikke Python 3 kompatibel)
- PR python / 17355 (Crash on Python-rammefiltre med ulestelig arg)
- PR guile / 17367 (beregning av guildbane feil når pkg-config-skript leveres som arg til -with-guile)
- PR gdb / 17247 (gdb fryser på multi threaded app)
- PR gdb / 17347 (Regresjon: GDB stoppet ved kjøring med vedlagt prosess)
- PR gdb / 17407 (Regression for Linux vDSO lesing)
- PR-server / 17457 (aarch64 / gdbserver: feil flytende punktregister vises)
- PR-server / 17487 (state-> dr_control_mirror == 0 mislyktes påstand i gdbserver på Windows)
- PR gdb / 17472 (med merknader, inngang mens kjøringen foregår i forgrunnen, krasjer readline / gdb)
- PR gdb / 17471 (gjenta en bakgrunnskommando gjør den forgrunnen)
- PR cli / 17300 (krasj i nonstop-modus med fortsett -a & (readline_callback_read_char () kalt uten handler!))
- PR python / 17372 (python henger når du viser hjelp ())
- PR python / 17408 (../../gdb/infrun.c:5256: intern-feil: switch_back_to_stepped_thread: Påstand `! schedlock_applies (1) 'mislyktes.)
Hva er nytt i versjon 7.8:
- Guile scripting support.
- Python-skriptforbedringer.
- Nye kommandoer, alternativer, bekvemmelighetsvariabler / alternativer.
- Ekstern protokoll og GDBserver forbedringer.
- Nye målkonfigurasjoner (PowerPC64 GNU / Linux little endian).
- forbedringer for btrace.
- ISO C99-støtte for automatisk variabel lengde automatisk.
- "Sammenlign-seksjonene" kommandoen fungerer nå på alle mål.
- Den "målfødte" kommandoen kobles nå til det opprinnelige målet.
Hva er nytt i versjon 7.7:
- Forbedret Python scripting support.
- Noen C ++ forbedringer.
- Nye kommandoer, alternativer, bekvemmelighetsvariabler / alternativer.
- Flere GDB / MI nye kommandoer og forbedringer.
- Ekstern protokoll og GDBserver forbedringer.
- Nye målkonfigurasjoner (Nios II, TI MSP430).
- GDB Windows x64 avviker datastøtte.
- SystemTap SDT probes støtte på AArch64 GNU / Linux.
- Støtte for CTF (Common Trace Format).
- Nye skript gcore og gdb-add-index.sh.
- Forbedret arm * -linux rekord / replay-støtte.
- Fjernet støtte for a.out NetBSD og OpenBSD foreldede konfigurasjoner. ELF-varianter av disse konfigurasjonene holdes støttet.
- Den "sett | Vis remotebaud" kommandoer blir avskrevet til fordel for "show | show serial baud".
Hva er nytt i versjon 7.6.2:
- PR breakpoint / 16251 gaffel)
- PR gdb / 16303 (GDB 7.6.1 virker ikke med binutils 2.24 på MIPS16 og microMIPS)
Hva er nytt i versjon 7.6.1:
- PR tdep / 15420 (Kan ikke feilsøke gjengede programmer på nyere versjoner av x86-solaris - Solaris 10, Update 10 eller nyere)
- PR fjernkontroll / 15455 (QTro fjernpakke ødelagt)
- PR build / 15476 (Bygningsfeil på grunn av ufullstendig enumtype i utils.h)
- PR-server / 15594 (tls-støtte i 64x32 x86 gdbserver utvider ikke adressen til 64 bit)
- PR-server / 15075 (dprintf slår inn med "neste")
- PR-server / 15434 (dprintf bruker en synkron "fortsett" selv i non-stop-modus)
- PR tui / 14880 (i delt registeroppsett, resulterer opp i påstandssvikt i verdi.c)
- PR c ++ / 15519 (GDB 7.6 er 94x langsommere enn GDB 7.5.1 ved hjelp av en bestemt kjernefil)
- PR gdb / 15837 (GDB skriver innverdier for lokale variabler)
- PR gdb / 15415 (gdb løser symbolske koblinger når passerer argv [0])
- PR cli / 15603 (CTRL-C kan ikke lenger forstyrre dårligere)
- PR gdb / 15604 (gdbserver sokkel lekkasje 7.5 regresjon)
Hva er nytt i versjon 7.5:
- Gå til språkstøtte.
- Nye mål (x32 ABI, microMIPS, Renesas RL78, HP OpenVMS ia64).
- Flere Python scripting forbedringer.
- SDT (Statisk Defined Tracing) -prober støtter med SystemTap-sonder.
- Forbedringer i GDBserver (stdio-tilkoblinger, evaluering av målside av bruddpunktsbetingelser, forbedringer av eksterne protokoller).
- Andre diverse forbedringer (evnen til å stoppe når et delt bibliotek er lastet / losset, dynamisk printf, etc.).
- Omvendt feilsøking på ARM.
- Den binære "gdbtui" har blitt forlatt og kan ikke lenger bygges. Bruk "gdb -tui" i stedet.
Hva er nytt i versjon 7.4:
- Tosfylte linjespesifikasjoner håndteres nå mer konsistent.
- Uinteressante funksjoner og filer kan nå hoppes over når du går med "hoppe-funksjonen" og "hopp over fil" kommandoer.
- Kommandoer for innstilling og maksimal lengdegrense for et fjernmålt hardwarehardwarepunkt ble lagt til.
- Python-skripting ble vesentlig forbedret.
- Mange andre forbedringer, feilrettinger og generelle endringer ble gjort.
Hva er nytt i versjon 7.1:
- Støtte for nye mål (inkludert en simulator):
- Xilinx MicroBlaze
- Renesas RX
- De store nye funksjonene er:
- Feilsøking av flere programmer, slik at debuggeren kan kontrollere mer enn
- ett program i samme GDB-sesjon.
- Angi uavhengig kjørbar (PIE) feilsøking.
- Den inneholder også mange forbedringer og feilrettinger, inkludert:
- Python-støtte er utvidet.
- C ++-støtteforbedringer (navneområde, cast-operatører, feilrettinger)
- Tracepoint-støtteforbedringer.
- Behandle opptaksforbedringer (lagre / gjenopprett utførelseslogg, maskinvare
- overvåkingsstøtte).
- Fjernprotokollforbedringer (Linux-kjernefeil, nye pakker
- for støttestøtte)
Kommentarer ikke funnet