Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
| software:gdb:crashcoursegdb [2018-04-19 09:56] – mgehrig2 | software:gdb:crashcoursegdb [Unbekanntes Datum] (aktuell) – gelöscht - Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1 | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| - | ====== Crashcourse gdb ====== | ||
| - | ===== Tutorial ===== | ||
| - | Ein guter Einstieg bietet auch dieses 20 Minuten [[https:// | ||
| - | |||
| - | {{: | ||
| - | |||
| - | |||
| - | ===== Vorbereitung ===== | ||
| - | Damit eine Applikation mit dem //gdb// debugged werden kann, muss es mit **Debug Symbolen** kompiliert werden. | ||
| - | |||
| - | CMAKE:\\ | ||
| - | '' | ||
| - | |||
| - | gcc / g++\\ | ||
| - | '' | ||
| - | '' | ||
| - | |||
| - | |||
| - | ===== gdb öffnen ===== | ||
| - | //gdb // | ||
| - | '' | ||
| - | |||
| - | oder ohne Argumente: | ||
| - | '' | ||
| - | |||
| - | Um die Applikation mit Root Rechten zu starten, muss der //gdb// ebenfalls mit Root Rechten gestartet werden ('' | ||
| - | |||
| - | |||
| - | ===== Weitere nützliche Befehle ===== | ||
| - | |||
| - | ^**Befehl** | ||
| - | | run | Startet die Applikation im //gdb// | | ||
| - | | kill | Bricht die Applikation ab | | ||
| - | | quit | beendet die Applikation | | ||
| - | | help | | | ||
| - | | list | Zeigt den Sourcecode an | | ||
| - | | b <18> | Breakpoint @ Zeile 18 | | ||
| - | | b if x==1 | Breakpoint mit Bedingung | | ||
| - | | info locals | Alle Informationen über lokale Variablen | | ||
| - | | set var < | ||
| - | | backtrace | backtrace z.B. bei Segfault | | ||
| - | | attach <PID> | den //gdb// an eine laufende Applikation anhängen | | ||
| - | |||
| - | |||
| - | ===== SIGINT ohne ' | ||
| - | '' | ||
| - | Sobald das geschieht, pausiert der //gdb// | ||
| - | Dies kann aber verhinder werden. | ||
| - | |||
| - | ^**Befehl** | ||
| - | | info signals | Zeigt das aktuelle Verhalten bei diversen Signalen an | | ||
| - | | handle 2 nostop | //gdb// pausiert nicht mehr bei einem Interrupt Signal | | ||