Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
tux:debug_hello_world [2011/10/09 15:24] 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> | ||
Zeile 283: | Zeile 283: | ||
<fc #800000>(gdb)</fc></xterm> | <fc #800000>(gdb)</fc></xterm> | ||
- | Mächtig viel Zenober für ein Programm, welches in gerade mal 2 Millisekunden vom Prozessor ausgeführt wird. Ich habe ein ganzes Wochenende mit diesem Artikel verbracht ;-) | + | Mächtig viel Zenober für ein Programm, welches in gerade mal 2 Millisekunden vom Prozessor ausgeführt wird. Ich habe ein ganzes Wochenende mit diesem Artikel verbracht, habe aber viel dabei gelernt ;-) |
<xterm>$ <fc #008000>time ./a.out</fc> | <xterm>$ <fc #008000>time ./a.out</fc> |