GNU-Testhilfeprogramm

Das GNU-Testhilfeprogramm, gewöhnlich genannt gerade GDB und genannter gdb als eine rechtskräftige Datei, ist das Standardtesthilfeprogramm für das GNU-Softwaresystem. Es ist ein tragbares Testhilfeprogramm, das auf vielen Unix ähnlichen Systemen läuft und für viele Programmiersprachen, einschließlich Adas, C, C ++, Objektives-C, Freies Pascal, Fortran, Java und teilweise andere arbeitet.

Geschichte

GDB wurde zuerst von Richard Stallman 1986 als ein Teil seines GNU-Systems nach seinem GNU geschrieben Emacs war "vernünftig stabil". GDB ist kostenlose Software, die unter dem GNU General Public License (GPL) veröffentlicht ist. Es wurde nach dem DBX Testhilfeprogramm modelliert, das mit dem Vertrieb von Berkeley Unix gekommen ist.

Von 1990 bis 1993 wurde es von John Gilmore aufrechterhalten, während er für Cygnus Lösungen gearbeitet hat. Jetzt wird es vom GDB Lenkungsausschuss aufrechterhalten, der von der Organisation zur Förderung freier Software ernannt wird.

Ausgabe-Geschichte

  • 2012 am 24. Januar: GDB 7.4
  • 2011 am 26. Juli: GDB 7.3
  • 2010 am 2. September: GDB 7.2
  • 2010 am 18. März: GDB 7.1
  • 2009 am 6. Oktober: GDB 7.0
  • 2008 am 27. März: GDB 6.8
  • 2003 am 3. Oktober: GDB 6.0

Technische Details

Eigenschaften

GDB bietet umfassende Möglichkeiten an, um die Ausführung von Computerprogrammen zu verfolgen und zu verändern. Der Benutzer kann kontrollieren und die Werte der inneren Variablen von Programmen modifizieren, und sogar Funktionen unabhängig vom normalen Verhalten des Programms nennen.

GDB Zielverarbeiter (bezüglich 2003) schließen ein: Alpha, ARM, AVR, H8/300, System/370, System 390, X86 und seine 64-Bit-Erweiterung X86-64, IA-64 "Itanium", Motorola 68000, MIPS, PAPA-RISC, PowerPC, SuperH, SPARC und VAX. Kleiner bekannte in der Standardausgabe unterstützte Zielverarbeiter haben A29K, KREISBOGEN, ETRAX CRIS, D10V, D30V, FR-30, FR-V, Intel i960, 68HC11, Motorola 88000, MCORE, MN10200, MN10300, NS32K, Stormy16 und Z8000 eingeschlossen. (Neuere Ausgaben werden wahrscheinlich einige von diesen nicht unterstützen.) GDB hat - in Simulatoren für sogar kleiner bekannte Zielverarbeiter solche M32R oder V850 kompiliert.

GDB wird noch aktiv entwickelt. Bezüglich der Version 7.0 schließen neue Eigenschaften Unterstützung für die Pythonschlange scripting ein. Mindestens seit der Version 7.3 "das umkehrbare Beseitigen" — ist das Erlauben eine Beseitigen-Sitzung, rückwärts, viel wie das Rückspulen eines zertrümmerten Programms zu gehen, um zu sehen, was geschehen ist — hinzugefügt worden.

Das entfernte Beseitigen

GDB bietet eine 'entfernte' häufig verwendete Weise an, als das Beseitigen Systeme eingebettet hat. Entfernte Operation besteht darin, wenn GDB auf einer Maschine und dem Programm läuft, das Läufe auf einem anderen die Fehler wird beseitigt. GDB kann zum entfernten 'Stummel' kommunizieren, der GDB Protokoll über den Serien- oder TCP/IP versteht.

Ein Stummel-Programm kann durch die Verbindung zu den passenden Stummel-Dateien geschaffen werden, die mit GDB versorgt sind, die die Zielseite des Nachrichtenprotokolls durchführen. Wechselweise kann gdbserver verwendet werden, um beim Programm entfernt die Fehler zu beseitigen, ohne es in jedem Fall ändern zu müssen.

Dieselbe Weise wird auch durch KGDB verwendet, für bei einem laufenden Kern von Linux auf dem Quellniveau mit gdb die Fehler zu beseitigen. Mit KGDB können Kernentwickler bei einem Kern auf die ziemlich gleiche Weise die Fehler beseitigen, wie sie bei Anwendungsprogrammen die Fehler beseitigen. Es macht es möglich, Unterbrechungspunkte in den Kerncode, Schritt durch den Code zu legen und Variablen zu beobachten. Auf Architekturen, wo Hardware-Beseitigen-Register verfügbar sind, kann watchpoints gesetzt werden, die Unterbrechungspunkte auslösen, wenn angegebene Speicheradressen durchgeführt oder zugegriffen werden. KGDB verlangt eine zusätzliche Maschine, die mit der die Fehler zu beseitigenden Maschine mit einem Serienkabel oder ethernet verbunden wird. Auf FreeBSD ist es auch möglich, beim Verwenden direkter Speicherzugang (DMA) von Firewire die Fehler zu beseitigen.

Grafische Benutzerschnittstelle

Das Testhilfeprogramm enthält seine eigene grafische Benutzerschnittstelle und Verzug zu einer Schnittstelle der Befehl-Linie nicht. Mehrere Vorderenden sind dafür, wie Xxgdb, Data Display Debugger (DDD), Nemiver, KDbg, Testhilfeprogramm von Xcode, GDBtk/Insight und das HP-Gnu-Testhilfeprogramm GUI (WDB GUI) gebaut worden. IDEN wie Codelite, GNAT Programming Studio (GPS), KDevelop, Qt Schöpfer, MonoDevelop, Eklipse, NetBeans und VisualStudio (sieh GEGEN die Galerie AddIn), können mit GDB verbinden. GNU Emacs hat eine GUD "Weise" und mehrere Werkzeuge für den SCHWUNG, besteht. Diese Testhilfeprogrammen ähnlichen Angebot-Möglichkeiten in IDEN gefunden.

Einige andere Beseitigen-Werkzeuge sind entworfen worden, um mit GDB wie Speicherleckstelle-Entdecker zu arbeiten.

Beispiele von Befehlen

Eine Beispiel-Sitzung

Das ist ein Beispiel GDB Sitzung auf dem Beispiel-Programm in der Stapel-Spur:

GNU gdb Rote Hat Linux (6.3.0.0-1.21rh)

Copyright 2004 Free Software Foundation, Inc.

GDB ist kostenlose Software, die durch die GNU-Lizenz der Breiten Öffentlichkeit bedeckt ist, und Sie sind

willkommen, um es zu ändern und/oder Kopien davon unter bestimmten Bedingungen zu verteilen.

Typ "Show, die kopiert", um die Bedingungen zu sehen.

Es gibt gar keine Garantie zu GDB. Typ "Show-Garantie" zu Details.

Dieser GDB wurde als "i386 redhat linux Gnu" konfiguriert... Verwendender Gastgeber libthread_db Bibliothek "/lib/libthread_db.so.1".

(gdb) führen

Startprogramm:/home/sam/programming/crash

Das Lesen von Symbolen vom geteilten Gegenstand, der vom... getanen Zielgedächtnis gelesen ist.

Geladenes System hat DSO an 0xc11000 geliefert

Dieses Programm wird gdb demonstrieren

Empfangenes

Programm-Signal SIGSEGV, Segmentationsschuld.

0x08048428 in function_2 (x=24) am Unfall c:22

22 Rückkehr *y;

(gdb) editieren

(gdb) schälen gcc crash.c-o zertrümmern-gstabs+

(gdb) führen

Das Programm, das die Fehler wird beseitigt, ist bereits angefangen worden.

Fangen Sie es vom Anfang an? (y oder n) y

Warnung: Kann "geteilten vom Zielgedächtnis gelesenen Gegenstand" nicht schließen: Datei im falschen Format

`/home/sam/programming/crash' hat sich geändert; Lesewiederholung von Symbolen.

Startprogramm:/home/sam/programming/crashDas Lesen von Symbolen vom geteilten Gegenstand, der vom... getanen Zielgedächtnis gelesen ist.

Geladenes System hat DSO an 0xa3e000 geliefert

Dieses Programm wird gdb demonstrieren

24

Programm ist normalerweise abgegangen.

(gdb) verlassen

</pre>

Das Programm wird geführt. Nachdem die Ursache der Segmentationsschuld gefunden wird, wird das Programm editiert, um das richtige Verhalten zu verwenden. Das korrigierte Programm wird mit GCC wiederkompiliert und dann geführt.

Siehe auch

  • Affinic Testhilfeprogramm GUI
  • Binäre Dateideskriptor-Bibliothek (libbfd)
  • dbx
  • ddd, ein GUI für gdb und andere Testhilfeprogramme
  • gdbserver

Links

Dokumentation

Tutorenkurse


Source is a modification of the Wikipedia article GNU Debugger, licensed under CC-BY-SA. Full list of contributors here.
Gnumeric / Galeon
Impressum & Datenschutz