Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende ÜberarbeitungNächste ÜberarbeitungBeide Seiten der Revision | ||
software:gdb:start [2016-02-17 13:28] – abajric | software:gdb:start [2018-04-13 11:14] – mgehrig2 | ||
---|---|---|---|
Zeile 6: | Zeile 6: | ||
* [[https:// | * [[https:// | ||
</ | </ | ||
+ | ===== Hauptfunktionen des GDB ===== | ||
Der GNU Debugger erlaubt es, zu sehen, was in einem Programm während der Ausführung passiert oder was ein Programm zuletzt gemacht vor einem Absturz. | Der GNU Debugger erlaubt es, zu sehen, was in einem Programm während der Ausführung passiert oder was ein Programm zuletzt gemacht vor einem Absturz. | ||
Zeile 14: | Zeile 14: | ||
* Untersuchen was geschehen ist, wenn das Programm angehalten wurde | * Untersuchen was geschehen ist, wenn das Programm angehalten wurde | ||
* Inhalt des Speichers ändern | * Inhalt des Speichers ändern | ||
+ | |||
===== Handhabung ===== | ===== Handhabung ===== | ||
- | GDB ist in vielen [[http:// | + | GDB ist in vielen [[http:// |
+ | Das ist besonders nütztlich, um ein Segfault zu überprüfen. | ||
+ | |||
+ | Mehr dazu unter [[Crashcourse // | ||
'' | '' | ||
Zeile 35: | Zeile 39: | ||
'' | '' | ||
+ | |||
+ | |||
+ | ===== Coredumps ===== | ||
+ | Mit Coredumps können Segfaults analysiert werden, ohne dass die Applikation im //gdb// gestartet wird. | ||
+ | Ein // | ||
+ | Es ist ebenfalls möglich, lokale Variablen nach dem Absturz zu untersuchen. | ||
+ | |||
+ | Mehr dazu unter unter [[software: | ||
Zeile 283: | Zeile 295: | ||
* [[https:// | * [[https:// | ||
- | Definition von Typen ([[https:// | + | === Definition von Typen === |
+ | ([[https:// | ||
+ | Type 1 = void und Type 2 = int. | ||
< | < | ||
Zeile 290: | Zeile 304: | ||
</ | </ | ||
- | Definition von globalen Variablen | + | === Definition von globalen Variablen |
+ | |||
+ | ([[https:// | ||
+ | Variable targetCommand an Adresse 0x100000 vom Type 2 = int. | ||
< | < | ||
Zeile 301: | Zeile 318: | ||
</ | </ | ||
- | Definition vom Java-Sourcecode. Der erste STABS mit N_SO ist der Build-Ordner. Der Zweite ist der relative Pfad zum Source-File. | + | === Definition vom Java-Sourcecode |
+ | |||
+ | ([[https:// | ||
+ | Der erste STABS mit N_SO ist der Build-Ordner. Der Zweite ist der relative Pfad zum Source-File. | ||
< | < | ||
Zeile 311: | Zeile 331: | ||
</ | </ | ||
- | Definition von Zeilennummern ([[https:// | + | === Definition von Zeilennummern |
+ | |||
+ | ([[https:// | ||
< | < | ||
Zeile 332: | Zeile 354: | ||
=== Definition von Registervariablen === | === Definition von Registervariablen === | ||
- | ([[https:// | + | ([[https:// |
+ | Registervariablen müssen immer im gleichen Register bleiben. (" | ||
< | < | ||
.stabs " | .stabs " | ||
+ | </ | ||
+ | |||
+ | |||
+ | === Definition von Funktionen === | ||
+ | |||
+ | ([[https:// | ||
+ | |||
+ | < | ||
+ | .stabs " | ||
+ | .stabn N_SLINE, 0, 37, reset | ||
+ | .stabn N_LBRAC, 0, 0, LM1 | ||
+ | .stabn N_RBRAC, 0, 0, LM3 | ||
</ | </ | ||