Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
software:gdb:crashcoursegdb [2018-04-13 11:46] – angelegt mgehrig2software: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://www.youtube.com/watch?v=xQ0ONbt-qPs&t=2s|Youtube Video]] 
- 
- 
-===== Vorbereitung ===== 
-Damit eine Applikation mit dem //gdb// debugged werden kann, muss es mit **Debug Symbolen** kompiliert werden. 
- 
-CMAKE:\\ 
-''CMAKE_BUILD_TYPE    Release'' 
- 
-gcc / g++\\ 
-''gcc -g hello.c''\\ 
-''g++ -g hello.c'' 
- 
- 
-===== gdb öffnen ===== 
-//gdb //öffnen:\\ 
-''gdb --args <executable_name> <arg1> <arg2> <arg3>'' 
- 
-oder ohne Argumente:\\ 
-''gdb <executable_name>'' 
- 
-Um die Applikation mit Root Rechten zu starten, muss der //gdb// ebenfalls mit Root Rechten gestartet werden (''sudo gdb ..'') 
- 
- 
-===== Weitere nützliche Befehle ===== 
- 
-^**Befehl**        ^**Bedeutung**    ^ 
-| 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 Bedinung | 
-| info locals | Alle Informationen über lokale Variablen | 
-| set var <variablenname> = <value> | Variable setzen | 
-| backtrace | backtrace z.B. bei Segfault | 
-| attach <PID> | den //gdb// an eine laufende Applikation anhängen | 
- 
- 
-===== SIGINT ohne 'Break' vom gdb ===== 
-''Ctrl+c'' sendet ''SIGINT'' an die Applikation. 
-Sobald das geschieht, pausiert der //gdb// 
-Dies kann aber verhinder werden. 
- 
-^**Befehl**        ^**Bedeutung**    ^ 
-| info signals | Zeigt das aktuelle Verhalten bei diversen Signalen an | 
-| handle 2 nostop | //gdb// pausiert nicht mehr bei einem Interrupt Signal |