Zum Inhalt springen

„GNU Debugger“ – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
[gesichtete Version][gesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
Einzelnachweise: Kategorie wegen Redundanz entfernt
K typo, form
 
(24 dazwischenliegende Versionen von 19 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:

{{Infobox Software
{{Infobox Software
|Name=GDB
|Name = GDB
|Logo=[[Datei:Gdb icon.png|Logo]]
|Logo = [[Datei:GDB Archer Fish by Andreas Arnez.svg|Logo]]
|Screenshot=[[Datei:GDB Screenshot.png|250px|Screenshot]]
|Screenshot = [[Datei:GDB Screenshot.png|250px|Screenshot]]
|Beschreibung=Bildschirmfoto des GNU Debuggers
|Beschreibung = Bildschirmfoto des GNU Debuggers
|Maintainer =
|Hersteller=[[GNU-Projekt]]
|Hersteller = [[GNU-Projekt]]
|AktuelleVersion=7.9.1
|Erscheinungsjahr =
|AktuelleVersionFreigabeDatum= 13. Mai 2015
|Betriebssystem=[[Unix-Derivat]]e (u. a. [[Linux]]), [[Microsoft Windows|Windows]]
|Betriebssystem = [[Unix-Derivat]]e (u. a. [[Linux]]), [[Microsoft Windows|Windows]]
|Programmiersprache =
|Kategorie=[[Debugger]]
|Kategorie = [[Debugger]]
|Lizenz=[[GNU General Public License|GPL]]
|Lizenz = [[GNU General Public License|GPL]]
|Deutsch=nein
|Deutsch = nein
|Website=[http://www.gnu.org/software/gdb/ gnu.org/software/gdb/]
|Website = [https://www.gnu.org/software/gdb/ gnu.org/software/gdb/]
|Dateien =
}}
}}
[[Datei:Gdb-7.3-debugging-session.png|miniatur|Beispielausgabe bei der Fehlersuche mit GDB]]
[[Datei:Gdb-7.3-debugging-session.png|mini|Beispielausgabe bei der Fehlersuche mit GDB]]

Das UNIX-Programm '''GDB''' –&nbsp;der '''GNU Debugger'''&nbsp;– ist der [[De facto|De-facto]]-Standard-[[Debugger]] von Linux-Systemen und wurde vom [[GNU-Projekt]] entwickelt. GDB ist auf viele Systeme portiert worden (siehe unten) und unterstützt die [[Programmiersprache]]n [[C (Programmiersprache)|C]], [[C++]], [[Objective-C]], [[Fortran|FORTRAN]], [[Java (Programmiersprache)|Java]], [[Pascal (Programmiersprache)|Pascal]], [[Modula-2]], [[Ada (Programmiersprache)|Ada]], [[D (Programmiersprache)|D]] und [[Go (Programmiersprache)|Go]].<ref>[http://sourceware.org/gdb/current/onlinedocs/gdb/Supported-Languages.html sourceware.org]</ref> GDB ist [[freie Software]] und steht unter der [[GNU General Public License]] (GPL). Der '''GDB''' orientiert sich in seinem Interface an dem Debugger [[Dbx (Debugger)|dbx]], der ursprünglich von BSD-Unix stammt und mittlerweile als Bestandteil von [[Oracle]]s Solaris Studio ausgeliefert wird.
Das UNIX-Programm '''GDB''' –&nbsp;der '''GNU Debugger'''&nbsp;– ist der [[De facto|De-facto]]-Standard-[[Debugger]] von Linux-Systemen und wurde vom [[GNU-Projekt]] entwickelt. Er ist auf viele Systeme portiert worden und unterstützt die [[Programmiersprache]]n [[C (Programmiersprache)|C]], [[C++]], [[Objective-C]], [[Fortran|FORTRAN]], [[Java (Programmiersprache)|Java]], [[Pascal (Programmiersprache)|Pascal]], [[Modula-2]], [[Ada (Programmiersprache)|Ada]], [[D (Programmiersprache)|D]], [[Go (Programmiersprache)|Go]] und teilweise weitere.<ref>[https://sourceware.org/gdb/current/onlinedocs/gdb/Supported-Languages.html 15.4 Supported Languages]</ref> GDB orientiert sich in seinem Interface an dem Debugger [[Dbx (Debugger)|dbx]], der ursprünglich von [[Berkeley Software Distribution|BSD]]-Unix stammt und mittlerweile als Bestandteil von [[Oracle]]s Solaris Studio ausgeliefert wird.


GDB bietet die üblichen Möglichkeiten zur [[Ablaufverfolgung]] wie [[Haltepunkt (Debugging)|Breakpoints]] oder die Ausgabe des [[Stacktrace]], und ermöglicht ein Eingreifen in die Ausführung von Programmen. GDB ermöglicht es Benutzern beispielsweise, die [[Variable (Programmierung)|Variablen]] des Programms zu manipulieren oder [[Funktion (Programmierung)|Funktionen]] unabhängig vom normalen Programmablauf aufzurufen. Seit Version 7.0 ist die Ablaufverfolgung nicht nur vorwärts sondern auch rückwärts möglich (''Reverse Debugging'')<ref>{{cite web
GDB bietet die üblichen Möglichkeiten zur [[Ablaufverfolgung]] wie [[Haltepunkt (Programmierung)|Breakpoints]] oder die Ausgabe des [[Stacktrace]] und ermöglicht ein Eingreifen in die Ausführung von Programmen. GDB ermöglicht es Benutzern beispielsweise, die [[Variable (Programmierung)|Variablen]] des Programms zu manipulieren oder [[Funktion (Programmierung)|Funktionen]] unabhängig vom normalen Programmablauf aufzurufen. Ab Version 7.0 ist die Ablaufverfolgung nicht nur vorwärts, sondern auch rückwärts möglich (''Reverse Debugging'').<ref>{{cite web
| title = Reverse Debugging with GDB
| title = Reverse Debugging with GDB
| url = https://www.gnu.org/software/gdb/news/reversible.html
| url = https://www.gnu.org/software/gdb/news/reversible.html
| accessdate = 2014-01-20
| accessdate = 2014-01-20
}}</ref>. Außerdem kann GDB mit [[Python (Programmiersprache)|Python]] und [[GNU Guile]] automatisiert werden.
}}</ref> Außerdem kann GDB mit [[Python (Programmiersprache)|Python]] und [[GNU Guile]] automatisiert werden.


Der Debugger besitzt keine eigene [[grafische Oberfläche]], sondern nutzt die Standard-Ein/Ausgabe mit [[GNU readline]], die optional aber durch eine auf der [[curses]]-Bibliothek basierende [[Zeichenorientierte Benutzerschnittstelle|TUI]] ergänzt werden kann. Daneben gibt es einige grafische Debugging-Oberflächen, die den GDB als Backend verwenden, zum Beispiel das [[Eclipse (Software)|Eclipse]]-Plugin ''C/C++-Development Tools'', der [[Data Display Debugger|ddd]], der [[ncurses]]-basierte [[cgdb]], [[Insight]] oder [[Emacs]] im „GUD mode“. Auch [[Xcode]] nutzte den GNU Debugger. Seit [[Xcode]] Version 5 wird GDB nicht mehr offiziell durch die OS X Entwicklungsumgebung unterstützt.
Der Debugger besitzt keine eigene [[grafische Oberfläche]], sondern nutzt die Standard-Ein/Ausgabe mit [[GNU readline]], die optional aber durch eine auf der [[curses]]-Bibliothek basierende [[Zeichenorientierte Benutzerschnittstelle|TUI]] ergänzt werden kann. Daneben gibt es einige grafische Debugging-Oberflächen, die den GDB als Backend verwenden, zum Beispiel das [[Eclipse (IDE)|Eclipse]]-Plugin ''{{lang|en|C/C++-Development Tools}}'', der [[Data Display Debugger|ddd]], der [[ncurses]]-basierte cgdb<ref>[https://cgdb.github.io/ ''cgdb''] auf github</ref>, gdbgui im Webbrowser<ref>[https://gdbgui.com/ ''gdbgui''] auf gdbgui.com, abgerufen am 20. April 2019.</ref>, [[Insight (GUI)|Insight]] oder [[Emacs]] im „{{lang|en|GUD mode}}“. Auch [[Xcode]] nutzte den GNU Debugger. Seit Xcode Version 5 wird GDB nicht mehr offiziell durch die [[MacOS|OS X]] Entwicklungsumgebung unterstützt.


Einige andere Tools arbeiten mit GDB zusammen, z.&nbsp;B. [[Speicherleck]]-Detektoren.
Einige andere Tools arbeiten mit GDB zusammen, z.&nbsp;B. [[Speicherleck]]-Detektoren.


GDB unterstützt unter anderem folgende Architekturen:
GDB unterstützt bzw. unterstützte unter anderem folgende Architekturen:
* [[Alpha-Prozessor|Alpha]]
* [[Alpha-Prozessor|Alpha]]
* [[ARM-Architektur|ARM]]
* [[ARM-Architektur|ARM]]
* [[Atmel AVR]]
* [[Atmel AVR]]
* [[Analog Devices]] [[Blackfin]]<ref>[http://blackfin.uclinux.org/doku.php?id=debuggers blackfin.uclinux.org]</ref>
* [[Analog Devices]] [[Blackfin]]<ref>http://blackfin.uclinux.org/doku.php?id=debuggers</ref>
* [[Hitachi H8|H8/300]]
* [[Hitachi H8|H8/300]]
* [[System/370]], [[System/390]] und [[System z]]
* [[System/370]], [[System/390]] und [[System z]]
Zeile 41: Zeile 45:
* [[SuperH]]
* [[SuperH]]
* [[Sun SPARC|SPARC]]
* [[Sun SPARC|SPARC]]
* [[VAX]]
* [[Virtual Address eXtension|VAX]]
* [[Cell (Prozessor)|Cell]]
* [[Cell (Prozessor)|Cell]]


== Literatur ==
== Literatur ==
* [[Richard M. Stallman]], Roland Pesch, Stan Shebs et al.: [http://sourceware.org/gdb/current/onlinedocs/gdb.html ''Debugging with GDB''.] [[Free Software Foundation]], 2011, ISBN 978-0-9831592-3-0
* [[Richard M. Stallman]], Roland Pesch, Stan Shebs et al.: [https://sourceware.org/gdb/current/onlinedocs/gdb.html ''Debugging with GDB''.] [[Free Software Foundation]], 2011, ISBN 978-0-9831592-3-0
* Norman Matloff, P. J. Salzman: ''The Art of Debugging with GDB, DDD, and Eclipse''. No Starch Press, 2008, ISBN 978-1-5932717-4-9
* Norman Matloff, P. J. Salzman: ''The Art of Debugging with GDB, DDD, and Eclipse''. No Starch Press, 2008, ISBN 978-1-5932717-4-9


== Weblinks ==
== Weblinks ==
* [http://www.gnu.org/software/gdb/gdb.html offizielle GDB-Homepage]
* [https://www.gnu.org/software/gdb/gdb.html GDB-Homepage]
* [https://sourceware.org/gdb/wiki/ GDB Wiki]
<!-- * {{man|1|gdb|gnu|The GNU Debugger}} falls mal eingedeutscht -->
* [http://sourceware.org/gdb/download/onlinedocs/gdb.pdf.gz ''Debugging with GDB''.] (PDF; gzipped; 2,0&nbsp;MB) Dokumentation
* [https://sourceware.org/gdb/download/onlinedocs/ GDB Dokumentation] (u.&nbsp;a. ''Debugging with GDB'')
* [http://www.dirac.org/linux/gdb/ ''Using GNU's GDB Debugger''] Tutorial von Peter Jay Salzman


== Einzelnachweise ==
== Einzelnachweise ==
<references />
<references />

{{Normdaten|TYP=s|GND=4830555-8}}


{{SORTIERUNG:Gnu Debugger}}
{{SORTIERUNG:Gnu Debugger}}

Aktuelle Version vom 5. Oktober 2023, 16:27 Uhr

GDB

Logo
Screenshot
Bildschirmfoto des GNU Debuggers
Basisdaten

Maintainer Joël Brobecker[1]
Entwickler GNU-Projekt
Erscheinungsjahr 1986[2]
Aktuelle Version 16.3[3]
(20. April 2025)
Betriebssystem Unix-Derivate (u. a. Linux), Windows
Programmier­sprache C, Scheme
Kategorie Debugger
Lizenz GPL
deutschsprachig nein
gnu.org/software/gdb/
Beispielausgabe bei der Fehlersuche mit GDB

Das UNIX-Programm GDB – der GNU Debugger – ist der De-facto-Standard-Debugger von Linux-Systemen und wurde vom GNU-Projekt entwickelt. Er ist auf viele Systeme portiert worden und unterstützt die Programmiersprachen C, C++, Objective-C, FORTRAN, Java, Pascal, Modula-2, Ada, D, Go und teilweise weitere.[4] GDB orientiert sich in seinem Interface an dem Debugger dbx, der ursprünglich von BSD-Unix stammt und mittlerweile als Bestandteil von Oracles Solaris Studio ausgeliefert wird.

GDB bietet die üblichen Möglichkeiten zur Ablaufverfolgung wie Breakpoints oder die Ausgabe des Stacktrace und ermöglicht ein Eingreifen in die Ausführung von Programmen. GDB ermöglicht es Benutzern beispielsweise, die Variablen des Programms zu manipulieren oder Funktionen unabhängig vom normalen Programmablauf aufzurufen. Ab Version 7.0 ist die Ablaufverfolgung nicht nur vorwärts, sondern auch rückwärts möglich (Reverse Debugging).[5] Außerdem kann GDB mit Python und GNU Guile automatisiert werden.

Der Debugger besitzt keine eigene grafische Oberfläche, sondern nutzt die Standard-Ein/Ausgabe mit GNU readline, die optional aber durch eine auf der curses-Bibliothek basierende TUI ergänzt werden kann. Daneben gibt es einige grafische Debugging-Oberflächen, die den GDB als Backend verwenden, zum Beispiel das Eclipse-Plugin C/C++-Development Tools, der ddd, der ncurses-basierte cgdb[6], gdbgui im Webbrowser[7], Insight oder Emacs im „GUD mode“. Auch Xcode nutzte den GNU Debugger. Seit Xcode Version 5 wird GDB nicht mehr offiziell durch die OS X Entwicklungsumgebung unterstützt.

Einige andere Tools arbeiten mit GDB zusammen, z. B. Speicherleck-Detektoren.

GDB unterstützt bzw. unterstützte unter anderem folgende Architekturen:

Einzelnachweise

[Bearbeiten | Quelltext bearbeiten]
  1. www.sourceware.org. (abgerufen am 3. März 2024).
  2. Richard Stallman lecture at the Royal Institute of Technology, Sweden (1986-10-30). (abgerufen am 9. Oktober 2019): „Then after GNU Emacs was reasonably stable, which took all in all about a year and a half, I started getting back to other parts of the system. I developed a debugger which I called GDB which is a symbolic debugger for C code, which recently entered distribution. Now this debugger is to a large extent in the spirit of DBX, which is a debugger that comes with Berkeley Unix.
  3. Joël Brobecker: GDB 16.3 released! 20. April 2025 (englisch, abgerufen am 20. April 2025).
  4. 15.4 Supported Languages
  5. Reverse Debugging with GDB. Abgerufen am 20. Januar 2014.
  6. cgdb auf github
  7. gdbgui auf gdbgui.com, abgerufen am 20. April 2019.
  8. http://blackfin.uclinux.org/doku.php?id=debuggers