Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende ÜberarbeitungLetzte ÜberarbeitungBeide Seiten der Revision | ||
software:gdb:crashcoursegdb [2018-05-16 14:04] – mgehrig2 | software:gdb:crashcoursegdb [2019-03-12 09:30] – mgehrig2 | ||
---|---|---|---|
Zeile 6: | Zeile 6: | ||
- | ===== Vorbereitung ===== | + | ===== Vorbereitung |
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 '// | ||
+ | |||
+ | '' | ||
+ | |||
+ | 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:\\ | ||
- | '' | ||
- | gcc / g++\\ | ||
- | '' | ||
- | '' | ||
Zeile 47: | Zeile 54: | ||
'' | '' | ||
Sobald das geschieht, pausiert der //gdb// | Sobald das geschieht, pausiert der //gdb// | ||
- | Dies kann aber verhinder | + | Dies kann aber verhindert |
^**Befehl** | ^**Befehl** |