Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

tux:debug_hello_world [2011/10/09 15:20]
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 282: Zeile 282:
 => 0x80483df <​main+43>:​ <​fc #​0000FF>​leave</​fc>  ​ => 0x80483df <​main+43>:​ <​fc #​0000FF>​leave</​fc>  ​
 <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, habe aber viel dabei gelernt ;-)
 +
 +<​xterm>​$ <fc #​008000>​time ./​a.out</​fc> ​
 +Hello World!
 +Hello World!
 +Hello World!
 +Hello World!
 +Hello World!
 +Hello World!
 +Hello World!
 +Hello World!
 +Hello World!
 +Hello World!
 +
 +real 0m0.002s
 +user 0m0.000s
 +sys 0m0.000s</​xterm>​
 +
 + --- //pronto 2011/10/09 15:21//
tux/debug_hello_world.1318166409.txt.gz (9545 views) · Zuletzt geändert: 2011/10/09 15:20 von wikisysop
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0