GDB

Software screenshot:
GDB
Software informatie:
Versie: 8.1.1 Bijgewerkt
Upload datum: 16 Aug 18
Ontwikkelaar: Stan Shebs
Licentie: Gratis
Populariteit: 181

Rating: 3.5/5 (Total Votes: 2)

GDB (ook bekend als GNU Project debugger) is een open source en gratis opdrachtregelsoftware waarmee zowel gebruikers als ontwikkelaars kunnen zien wat er zich 'binnen' een ander programma afspeelt, terwijl het uitgevoerd, of waarom een ​​toepassing op een bepaald punt crasht.


Functies in één oogopslag

De belangrijkste functies omvatten vier verschillende technieken om ontwikkelaars te helpen bugs op te nemen, een toepassing te starten en alles te specificeren dat het gedrag van het programma kan beïnvloeden, een programma te laten stoppen onder gespecificeerde voorwaarden, de logboeken te bekijken wanneer de toepassing is gecrasht, geleidelijk dingen in te veranderen een programma om te experimenteren met het corrigeren van de effecten van één probleem, en door te gaan met het leren van een andere bug. het ondersteunt ook het debuggen van programma's die zijn geschreven in een groot aantal programmeertalen, waaronder C, C ++, Pascal , Ada, Objective-C en vele anderen.

Het is een opdrachtregeltoepassing

GNU Project debugger is een altijd een opdrachtregeltoepassing. Om het te gebruiken, moet u de & ldquo; gdb & rdquo; commando in een terminal-emulator, voer dan de & ldquo; help & rdquo; uit opdracht (zonder aanhalingstekens) a de gdb-prompt. Bovendien kunt u ook de & ldquo; help all & rdquo; commando om een ​​lijst van alle commando's te bekijken, typ "help" gevolgd door een commandonaam om de volledige documentatie te bekijken, typ "help" gevolgd door een klassenaam om een ​​lijst met opdrachten in die klasse te bekijken, om "apropos-woord" te typen om te zoeken voor opdrachten met betrekking tot 'woord'.


Lijst met klassen met opdrachten

Na het typen van de & ldquo; help & rdquo; commando zoals hierboven beschreven, ziet u een lijst met klassen met opdrachten, inclusief aliassen (geeft aliassen van andere opdrachten weer), breekpunten (zorgt ervoor dat het programma op bepaalde punten stopt), gegevens (voor het onderzoeken van gegevens), bestanden (voor het onderzoeken van bestanden) internals (onderhoudsopdrachten), obscure (obscure functies), hardlopen (voor het uitvoeren van het programma), stack (voor het onderzoeken van de stapel), status (voor statusaanvragen), ondersteuning (voor ondersteuningsfaciliteiten), tracepoints (voor het traceren van programma-uitvoering zonder het stoppen van het programma) en door de gebruiker gedefinieerde (door de gebruiker gedefinieerde opdrachten).

Ondersteunde hardwareplatforms en besturingssystemen

GDB is ontworpen vanuit de offset als een platformonafhankelijke toepassing die draait op reguliere besturingssystemen zoals Microsoft Windows en enkele van de meest populaire Linux / UNIX-varianten. Het wordt ondersteund op zowel 32-bits als 64-bits hardwareplatforms.

Wat is nieuw in deze versie:

  • PR gdb / 22824 (misleidende beschrijving van de nieuwe Python-functie voor roven in GDB 8.1 NEWS-bestand)
  • PR gdb / 22849 (ctrl-c werkt niet op extended-remote)
  • PR gdb / 22907 ([Regressie] gdbserver werkt niet met binaire bestanden met alleen bestandsnamen)
  • PR gdb / 23028 (inconsistent demonteren van vcvtpd2dq)
  • PR gdb / 23053 (Fix -D_GLIBCXX_DEBUG gdb-add-index regressie)
  • PR gdb / 23127 ([AArch64] GDB kan niet worden gebruikt voor foutopsporingssoftware met hoge virtuele adressen)
  • PR-server / 23158 (gdbserver werkt niet meer op Windows)
  • PR-onderbrekingspunten / 23210 ([8.1 / 8.2 Regressie] Bogus onderbrekingspuntadres aangepast van 0xf7fe7dd3 tot 0xfffffffff7fe7dd3)

Wat is nieuw in versie 8.1:

  • Onderbrekingspunten op C ++ -functies zijn nu standaard ingesteld op alle scopes (& quot; wild & quot; matching);
  • Ondersteuning voor het invoegen van onderbrekingspunten op functies die zijn gemarkeerd met C ++ ABI-tags;
  • Doel drijvende-kommabe rekenkundige emulatie tijdens de evaluatie van de uitdrukking (vereist MPFR 3.1 of hoger);
  • Verschillende verbeteringen in Python Scripting;
  • Verbeterde ondersteuning voor Rust; met name Trait-objecten kunnen nu worden geïnspecteerd bij het debuggen van Rust-code;
  • GDB maakt geen aannames meer over het type symbolen zonder foutopsporingsinformatie om te voorkomen dat er foutieve en vaak verwarrende resultaten worden geproduceerd;
  • De opdrachten 'enable' en 'disable' accepteren nu een reeks onderbrekingslocaties;
  • Nieuwe 'starti'-opdracht om het programma bij de eerste instructie te starten;
  • Nieuwe 'rbreak'-opdracht om een ​​aantal onderbrekingspunten in te voegen via een regulier expressiepatroon (vereist Python);
  • De opdracht 'ptype' ondersteunt nu het afdrukken van de offset en de grootte van de velden in een struct;
  • De opdracht 'gcore' ondersteunt nu het dumpen van alle geheugenmappen (de opdrachtregeloptie '-a');
  • Nieuwe snelkoppelingen voor de TUI Single-Key-modus: 'i' voor stepi en 'o' voor nexti;
  • GDBserver-verbeteringen:
  • Ondersteuning voor het verzenden van omgevingsvariabelen naar GDBserver;
  • Ondersteuning voor het starten van inferieure processen met een opgegeven initiële werkdirectory;
  • Op Unix-systemen, ondersteuning voor globbing-uitbreiding en variabele substitutie van inferieure opdrachtregelargumenten;
  • Verschillende voltooiingsverbeteringen;
  • De opdracht die wordt gebruikt om code te compileren en te injecteren met de opdracht 'compileren' kan nu worden geconfigureerd;
  • Nieuwe '- readnever' opdrachtregeloptie om het opstarten van GDB te versnellen wanneer debugginginformatie niet nodig is;
  • Ondersteuning voor de volgende nieuwe native configuraties:
  • FreeBSD / aarch64 (aarch64 * - * - freebsd *);
  • FreeBSD / arm (arm * - * - freebsd *);
  • Ondersteuning voor de volgende nieuwe doelen:
  • FreeBSD / aarch64 (aarch64 * - * - freebsd *);
  • FreeBSD / arm (arm * - * - freebsd *);
  • OpenRISC ELF (or1k * - * - elf)
  • Ondersteuning voor de volgende doelen en native configuraties verwijderd:
  • Solaris2 / x86 (i? 86 - * - solaris2. [0-9]);
  • Solaris2 / sparc (sparc * - * - solaris2. [0-9]);

Wat is nieuw in versie:

  • Voor het bouwen van deze versie van GDB zijn nu de volgende hulpmiddelen vereist:
  • Een C ++ - 11-compiler (bijvoorbeeld GCC 4.8 of hoger);
  • GNU maakt versie 3.81 of hoger.
  • Wijzigingen in deze release omvatten:
  • C ++: Ondersteuning voor rvalue-verwijzingen
  • Verbeterde Python-scripting:
  • Nieuwe functies om een ​​lopende btrace-opname te starten, stoppen en openen.
  • Ondersteuning van Rvalue-referentie in gdb.Type.
  • GDB-opdrachtinterpreter:
  • Gebruikersopdrachten accepteren nu een onbeperkt aantal argumenten.
  • De & quot; eval & quot; commando breidt nu door de gebruiker gedefinieerde argumenten uit.
  • Ondersteuning voor DWARF versie 5
  • (merk op dat de index .debug_names nog niet wordt ondersteund).
  • GDB / MI-verbeteringen:
  • Nieuwe -bestand-lijst-gedeelde-bibliotheken-opdracht om de gedeelde bibliotheken in het programma te vermelden.
  • Nieuwe opdracht "Target-flash-wis" om het flash-geheugen te wissen.
  • Ondersteuning voor native FreeBSD / mips (mips * - * - freebsd)
  • Ondersteuning voor de volgende doelen:
  • Synopsys ARC (arc * - * - elf32)
  • FreeBSD / mips (mips * - * - freebsd)
  • Diverse verbeteringen:
  • Omleiding van opdrachtregel nu ondersteund op MS-Windows-hosts.
  • Ondersteuning voor threadnamen in MS-Windows.
  • Ondersteuning voor het PKU-register op GNU / Linux.
  • Ondersteuning voor doelbeschrijvingen op sparc32 en sparc64.
  • Nieuw GDB / CLI-commando om het flash-geheugen te wissen
  • rdrand- en rdseed-instructies ondersteunen / herhalen support.
  • Ondersteuning voor de volgende functies is verwijderd:
  • Ondersteuning voor Java-programma's gecompileerd met gcj
  • Ondersteuning voor de volgende configuraties:
  • FreeBSD / alpha (alpha * - * - freebsd *)
  • GNU / kFreeBSD / alpha (alpha * - * - kfreebsd * -gnu)

Wat is nieuw in versie 7.9.1:

  • PR build / 18033 (commentaar in C ++ -stijl gebruikt in gdb / iq2000-tdep.c en gdb / compile / compile - *. c)
  • PR build / 18298 (& quot; compile & quot; opdracht kan de compiler niet vinden als gereedschappen zijn geconfigureerd met triplet in plaats van quadruplet)
  • PR tui / 18311 (willekeurige SEGV bij het weergeven van registers in de TUI-modus)
  • PR python / 18299 (uitzondering bij het registreren van een globale mooie printer in uitgebreide modus)
  • PR python / 18066 (argument "woord" lijkt te zijn gebroken in Command.complete (tekst, woord))
  • PR pascal / 17815 (pascaal gedrag corrigeren voor klassenvelden met testcase)
  • PR python / 18285 (ptype expr-met-xmethode veroorzaakt SEGV)

Wat is nieuw in versie 7.9:

  • Verbeterde Python-scripting.
  • Compilatie van broncode en injectie in de inferieure.
  • Nieuwe opdrachten, opties, gemaksvariabelen / opties.
  • MIPS SDE-ondersteuning (mips * -sde * -elf *).
  • Betere afhandeling van signalen bij het debuggen van programma's met schroefdraad.

Wat is nieuw in versie 7.8.2:

  • PR symtab / 17642 (interne [7.8 regressie] -fout: resolve_dynamic_struct: bewering `TYPE_NFIELDS (type) & gt; 0 'is mislukt.)
  • PR binutils / 17677 (_bfd_elf_get_synthetic_symtab wordt uitgevoerd in O (n ^ 2) complexiteit)
  • PR gdb / 16215 (SPARC: kan CFA niet berekenen voor dit frame)
  • PR gdb / 17525 (doel-async: breekpuntopdrachten niet uitgevoerd wanneer programma wordt uitgevoerd vanuit -x-script)
  • PR cli / 17828 ([7.8 regressie] -batch -ex r onderbreekt terminal)

Wat is nieuw in versie 7.8.1:

  • PR python / 17364 (betere printernamen nodig in bound_registers.py)
  • PR build / 17104 (CFLAGS = & quot; -Wall -Wextra & quot; gdb / confgure --with-babeltrace failed)
  • PR gdb / 17345 (babeltrace (1.1.2 en later) klaagt over de ctf-gegevens gegenereerd door GDB)
  • PR-build / 17298 (gcore: Kon geen registers ophalen: geen dergelijk proces)
  • PR python / 17342 (Xmethod Python is niet compatibel met Python 3)
  • PR python / 17355 (Crash op Python-framefilters met onleesbare arg)
  • PR guile / 17367 (berekening van guildpad fout toen pkg-config-script als arg werd geleverd aan - met-guile)
  • PR gdb / 17247 (gdb bevriest op app met meerdere threads)
  • PR gdb / 17347 (Regressie: GDB gestopt tijdens uitvoeren met bijgevoegd proces)
  • PR gdb / 17407 (Regressie voor Linux vDSO-lezing)
  • PR-server / 17457 (aarch64 / gdbserver: weergave van registers met zwevende komma's)
  • PR-server / 17487 (state- & gt; dr_control_mirror == 0 mislukte bewering in gdbserver onder Windows)
  • PR gdb / 17472 (met annotaties, invoer tijdens uitvoering op de voorgrond loopt leesregel / gdb vast)
  • PR gdb / 17471 (door een achtergrondopdracht te herhalen wordt de voorgrond)
  • PR cli / 17300 (crash in non-stopmodus met doorgaan -a & (readline_callback_read_char () aangeroepen zonder handler!))
  • PR python / 17372 (python loopt vast als hulp wordt weergegeven ())
  • PR python / 17408 (../../gdb/infrun.c:5256: interne fout: switch_back_to_stepped_thread: Assertion `! schedlock_applies (1) 'failed.)

Wat is nieuw in versie 7.8:

  • Guile-ondersteuning voor scripts.
  • Verbeterde Python-scripting.
  • Nieuwe opdrachten, opties, gemaksvariabelen / opties.
  • Verbindingen met Remote Protocol en GDBserver.
  • Nieuwe doelconfiguraties (PowerPC64 GNU / Linux little-endian).
  • btrace-uitbreidingen.
  • ISO C99 ondersteuning voor automatische arrays met variabele lengte.
  • De & quot; vergelijk-secties & quot; opdracht werkt nu op alle doelen.
  • Het & quot; native doelwit & quot; opdracht maakt nu verbinding met het native doelwit.

Wat is nieuw in versie 7.7:

  • Verbeterde Python scripting-ondersteuning.
  • Enkele C ++ -verbeteringen.
  • Nieuwe opdrachten, opties, gemaksvariabelen / opties.
  • Verschillende GDB / MI nieuwe opdrachten en verbeteringen.
  • Verbindingen met Remote Protocol en GDBserver.
  • Nieuwe doelconfiguraties (Nios II, TI MSP430).
  • GDB Windows x64 afwikkeling van gegevensondersteuning.
  • Ondersteuning van SystemTap SDT-sondes op AArch64 GNU / Linux.
  • Ondersteuning CTF (Common Trace Format)
  • Nieuwe scripts gcore en gdb-add-index.sh.
  • Verbeterde arm * -linux opname / replay-ondersteuning.
  • Ondersteuning verwijderd voor a.out NetBSD en OpenBSD verouderde configuraties. ELF-varianten van deze configuraties worden ondersteund gehouden.
  • De & quot; set | show remotebaud & quot; opdrachten worden vervangen door "show | show serial baud".

Wat is nieuw in versie 7.6.2:

  • PR-breekpunt / 16251 (AArch64 hardware breekpuntfout na vork)
  • PR gdb / 16303 (GDB 7.6.1 werkt niet met binutils 2.24 op MIPS16 en microMIPS)

Wat is nieuw in versie 7.6.1:

  • PR tdep / 15420 (Kan geen foutopsporing programmeren op nieuwere versies van x86-solaris - Solaris 10, update 10 of hoger)
  • PR remote / 15455 (QTro remote packet broken)
  • PR-build / 15476 (Build-fout door onvolledig enum-type in utils.h)
  • PR-server / 15594 (TLS-ondersteuning in 64x32 x86 gdbserver breidt adres niet uit naar 64 bit)
  • PR-server / 15075 (dprintf inteferes met & quot; next & quot;)
  • PR-server / 15434 (dprintf gebruikt een synchrone 'doorgaan', zelfs in non-stopmodus)
  • PR tui / 14880 (in gesplitste registerlay-outs resulteert dit in assertion failure in value.c)
  • PR c ++ / 15519 (GDB 7.6 is 94x langzamer dan GDB 7.5.1 met een bepaald kernbestand)
  • PR gdb / 15837 (GDB drukt invoerwaarden voor lokale variabelen af)
  • PR gdb / 15415 (gdb lost symbolische koppelingen op bij doorgeven van argv [0])
  • PR cli / 15603 (CTRL-C kan niet langer inferieur onderbreken)
  • PR gdb / 15604 (gdbserver socket leak 7.5-regressie)

Wat is nieuw in versie 7.5:

  • Ondersteuning voor taalbegeleiding.
  • Nieuwe doelen (x32 ABI, microMIPS, Renesas RL78, HP OpenVMS ia64).
  • Meer verbeteringen aan de scripting van Python.
  • SDT (Static Defined Tracing) analyseert de ondersteuning met SystemTap-probes.
  • Verbetering van de GDB-server (stdio-verbindingen, evaluatie aan de doelzijde van onderbrekingsvoorwaarden, verbeteringen van externe protocollen).
  • Andere diverse verbeteringen (mogelijkheid om te stoppen wanneer een gedeelde bibliotheek wordt geladen / verwijderd, dynamische printf, enz.).
  • Foutopsporing omkeren op ARM.
  • De binaire & quot; gdbtui & quot; is verlaten en kan niet langer worden gebouwd. Gebruik & quot; gdb -tui & quot; in plaats daarvan.

Wat is nieuw in versie 7.4:

  • Meerdere linespecs worden nu consistenter afgehandeld.
  • Oninteressante functies en bestanden kunnen nu worden overgeslagen bij het stappen met de & quot; skip-functie & quot; en & quot; bestand overslaan & quot; commando's.
  • Opdrachten voor het instellen en verkrijgen van de maximale lengtebeperking van een hardware-uitloophoekje op afstand werden toegevoegd.
  • Python-scripting is enorm verbeterd.
  • Er zijn veel andere verbeteringen, bugfixes en algemene wijzigingen aangebracht.

Wat is nieuw in versie 7.1:

  • Ondersteuning voor nieuwe doelen (inclusief een simulator):
  • Xilinx MicroBlaze
  • Renesas RX
  • De belangrijkste nieuwe functies zijn:
  • Foutopsporing in meerdere programma's, waardoor de debugger meer controle heeft dan
  • één programma binnen dezelfde GDB-sessie.
  • Position Independent Executable (PIE) debugging.
  • Het bevat ook veel verbeteringen en bugfixes, waaronder:
  • Ondersteuning van Python is uitgebreid.
  • C ++ -ondersteuningsverbeteringen (naamruimte, cast-operators, bugfixes)
  • Tracepoint-ondersteuningsverbeteringen.
  • Procesrecords verbeteren (uitvoeringslogboek, hardware opslaan / herstellen
  • ondersteuning van het steunpunt).
  • Verbetering van het externe protocol (debugging van Linux-kernel, nieuwe pakketten
  • voor de ondersteuning van tracepoint)

Vergelijkbare software

KDbg
KDbg

14 Apr 15

WingDBG
WingDBG

20 Feb 15

VimPdb
VimPdb

11 May 15

Andere software van ontwikkelaar Stan Shebs

Xconq
Xconq

2 Jun 15

Reacties op GDB

Reacties niet gevonden
Commentaar toe te voegen
Zet op de beelden!