Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
tux:debug_hello_world [2011/10/09 15:25] wikisysop [Disassemble Binary] |
tux:debug_hello_world [2011/10/10 15:13] (aktuell) wikisysop [Disassemble Binary] |
||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
[[:tux|{{ :linux.png?40|}}]] | [[:tux|{{ :linux.png?40|}}]] | ||
- | ===== "Hello, world" im Debugger ===== | + | ===== "Hello World!" im Debugger ===== |
Das Debuggen eines Programms gehört sicherlich zu den anspruchsvollsten Angelegenheiten, kann aber unter gegebenen Umständen äußerst nützlich sein. | Das Debuggen eines Programms gehört sicherlich zu den anspruchsvollsten Angelegenheiten, kann aber unter gegebenen Umständen äußerst nützlich sein. | ||
Zeile 69: | Zeile 69: | ||
End of assembler dump.</xterm> | End of assembler dump.</xterm> | ||
- | <xterm><fc #800000>(gdb)</fc><fc #008000>break main</fc> | + | <xterm><fc #800000>(gdb)</fc> <fc #008000>break main</fc> |
Breakpoint 1 at 0x80483bd: file firstprog.c, line 6.</xterm> | Breakpoint 1 at 0x80483bd: file firstprog.c, line 6.</xterm> | ||
Zeile 166: | Zeile 166: | ||
Nicht weiter von Belang aber die mov-Instruktion möchte die Adresse >><fc #FF00FF>0x80484b0</fc><< dort hin schreiben. Aber warum? Was ist so besonders an der Speicheradresse >><fc #FF00FF>0x80484b0</fc><<? Finden wir es raus und lassen wir uns mal die ersten 8 Byte dieser Adresse anzeigen: | Nicht weiter von Belang aber die mov-Instruktion möchte die Adresse >><fc #FF00FF>0x80484b0</fc><< dort hin schreiben. Aber warum? Was ist so besonders an der Speicheradresse >><fc #FF00FF>0x80484b0</fc><<? Finden wir es raus und lassen wir uns mal die ersten 8 Byte dieser Adresse anzeigen: | ||
- | <xterm><fc #800000>(gdb)</fc> (gdb) <fc #008000>x/8xb 0x80484b0</fc> | + | <xterm><fc #800000>(gdb)</fc> <fc #008000>x/8xb 0x80484b0</fc> |
<fc #FF00FF>0x80484b0</fc>: 0x48 0x65 0x6c 0x6c 0x6f 0x20 0x57 0x6f</xterm> | <fc #FF00FF>0x80484b0</fc>: 0x48 0x65 0x6c 0x6c 0x6f 0x20 0x57 0x6f</xterm> | ||