Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
Letzte ÜberarbeitungBeide Seiten der Revision
software:gdb:crashcoursegdb [2019-02-15 13:41] ditarantosoftware:gdb:crashcoursegdb [2019-03-12 09:30] mgehrig2
Zeile 6: Zeile 6:
  
  
-===== Vorbereitung =====+===== Vorbereitung -- Build des Projekts =====
 Damit eine Applikation mit dem //gdb// debugged werden kann, muss es mit **Debug Symbolen** kompiliert werden. Damit eine Applikation mit dem //gdb// debugged werden kann, muss es mit **Debug Symbolen** kompiliert werden.
 +Dazu kann für nicht Realtime Applikationen der "Build type" auf '//Debug//' gesetzt werden:
 +
 +''CMAKE_BUILD_TYPE    Debug''
 +
 +Dadurch werden Debugsymbole hinzugefügt und die Applikation wird **nicht** optimiert.
 +Nicht optimierte Applikationen vereinfachen das Debugging, da das nicht optimierte Binary grössten teils dem Sourcecode entspricht.
 +Mit Optimierung können einzelne Variablen wegoptimiert werden.
 +
 +**Realtime Applikationen** müssen aber normalerweise optimiert werden, da die Realtime Performance von der Optimierung abhängig ist.
 +Um die Applikation mit Debug Informationen **und** Optimierung zu bauen kann folgender Build Type verwendet werden:
 +
 +''CMAKE_BUILD_TYPE    RelWithDebInfo''
  
-CMAKE:\\ 
-''CMAKE_BUILD_TYPE    Release'' 
  
-gcc / g++\\ 
-''gcc -g hello.c''\\ 
-''g++ -g hello.c''