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 12:45] – abajric | software:gdb:start [2016-02-17 13:34] – abajric | ||
---|---|---|---|
Zeile 143: | Zeile 143: | ||
.stabs " | .stabs " | ||
- | .stabs " | + | .stabs " |
.data | .data | ||
Zeile 276: | Zeile 276: | ||
+ | ==== Beschreibung der STABS ==== | ||
+ | |||
+ | Online Doku von GDB: | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | |||
+ | === Definition von Typen === | ||
+ | ([[https:// | ||
+ | Type 1 = void und Type 2 = int. | ||
+ | |||
+ | < | ||
+ | .stabs " | ||
+ | .stabs " | ||
+ | </ | ||
+ | |||
+ | === Definition von globalen Variablen === | ||
+ | |||
+ | ([[https:// | ||
+ | Variable targetCommand an Adresse 0x100000 vom Type 2 = int. | ||
+ | |||
+ | < | ||
+ | .data | ||
+ | .org 0x100000 | ||
+ | .stabs " | ||
+ | .global targetCommand | ||
+ | targetCommand: | ||
+ | .int 0 | ||
+ | </ | ||
+ | |||
+ | === Definition vom Java-Sourcecode === | ||
+ | |||
+ | ([[https:// | ||
+ | Der erste STABS mit N_SO ist der Build-Ordner. Der Zweite ist der relative Pfad zum Source-File. | ||
+ | |||
+ | < | ||
+ | .org 0x400100 | ||
+ | .stabs "/ | ||
+ | .stabs " | ||
+ | .text | ||
+ | Ltext0: | ||
+ | </ | ||
+ | |||
+ | === Definition von Zeilennummern === | ||
+ | |||
+ | ([[https:// | ||
+ | |||
+ | < | ||
+ | reset: | ||
+ | .stabn N_SLINE, 0, 38, LM1 | ||
+ | LM1: | ||
+ | |||
+ | ... | ||
+ | |||
+ | .stabn N_SLINE, 0, 41, LM5 | ||
+ | LM6: | ||
+ | |||
+ | ... | ||
+ | |||
+ | .stabn N_SLINE, 0, 47, LM4 | ||
+ | LM4: | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | === Definition von Registervariablen === | ||
+ | ([[https:// | ||
+ | Registervariablen müssen immer im gleichen Register bleiben. (" | ||
+ | |||
+ | < | ||
+ | .stabs " | ||
+ | </ | ||
+ | |||
+ | |||
+ | === Definition von Funktionen === | ||
+ | |||
+ | ([[https:// | ||
+ | |||
+ | < | ||
+ | .stabs " | ||
+ | .stabn N_SLINE, 0, 37, reset | ||
+ | .stabn N_LBRAC, 0, 0, LM1 | ||
+ | .stabn N_RBRAC, 0, 0, LM3 | ||
+ | </ | ||
==== Debuggen mit GDB ==== | ==== Debuggen mit GDB ==== | ||
Zeile 363: | Zeile 447: | ||
</ | </ | ||
+ | Mit dem folgenden Befehl wird eine definierte Variable geändert: | ||
+ | |||
+ | < | ||
+ | (gdb) set var x = 12345 | ||
+ | </ | ||
+ | |||
+ | Mit dem folgenden Befehl kann im Memory geschrieben werden: | ||
+ | |||
+ | < | ||
+ | (gdb) set var *0x100000 = 12345 | ||
+ | </ |