1 <!doctype html public
"-//w3c//dtd html 4.0 transitional//en">
4 <meta http-equiv=
"Content-Type" content=
"text/html; charset=iso-8859-1">
5 <meta name=
"GENERATOR" content=
"Mozilla/4.74 [en] (X11; U; Linux 2.2.16-SMP i686) [Netscape]">
6 <meta name=
"Author" content=
"Johannes Sixt">
7 <title>KDbg - Benutzerhandbuch
</title>
9 <body text=
"#000000" bgcolor=
"#FFFFFF" link=
"#0000EF" vlink=
"#51188E" alink=
"#FF0000">
12 KDbg - Benutzerhandbuch
</h1>
19 <a href=
"#Introduction">Einleitung
</a></li>
22 <a href=
"#UsingKDbg">Mit KDbg arbeiten
</a></li>
25 <a href=
"#InfoWindows">Die Informationsfenster von KDbg
</a></li>
28 <a href=
"#TipsTricks">Tipps und so weiter
</a></li>
31 F
ür Fortgeschrittene:
<a href=
"../../en/kdbg/types.html">Typentabellen
</a>
35 <a href=
"#KnownProblems">Bekannte Probleme
</a></li>
38 <a href=
"#Author">Autor
</a></li>
43 <a NAME=
"Introduction"></a>Einleitung
</h2>
44 KDbg ist eine grafische Benutzeroberfl
äche f
ür
<tt>gdb
</tt>,
46 <p>Das bedeutet, dass KDbg selbst nicht der Debugger ist. Vielmehr kommuniziert
47 KDbg mit
<tt>gdb
</tt>, indem Befehlszeilen and diesen geschickt werden
48 und die Ausgabe, wie z.B. Variablenwerte, entgegengenommen werden. Die
49 Men
übefehle und Mausklicks werden in
<tt>gdb
</tt>-Befehle umgesetzt,
50 und die Ausgabe von
<tt>gdb
</tt> wird in (mehr oder weniger) sichtbare
51 Information umgesetzt, wie zum Beispiel die Struktur von Variablen.
52 <p>Eine Folge davon ist, dass KDbg vollst
ändig von den F
ähigkeiten
53 des verwendeten Befehlszeilendebuggers,
<tt>gdb
</tt>, abh
ängig ist.
54 KDbg kann nicht mehr als
<tt>gdb
</tt> leisten. Wenn Sie zum Beispiel einen
56 haben, der Programme mit Threads nicht unterst
ützt, dann kann auch
57 KDbg das nicht (obwohl ein Threads-Fenster vorhanden ist).
59 <a NAME=
"UsingKDbg"></a>Mit KDbg arbeiten
</h2>
60 Bevor Sie mit der Arbeit beginnen, sollten Sie die
<a href=
"globaloptions.html">globalen
61 Einstellungen
</a> pr
üfen, indem Sie
<i>Datei|Globale Einstellungen
</i>
64 Ein zu debuggendes Program angeben
</h4>
65 Um ein Programm zu debuggen, w
ählen Sie
<i>Datei|Programm
</i>. Wenn
66 Sie das Programm schon einmal debuggt haben, k
önnen Sie es auch aus
67 der Liste unter
<i>Datei|Zuletzt g
öffnete Programme
</i> w
ählen.
68 Das Programm wird jetzt geladen.
69 <p>Wenn Sie einen Core-Dump verwenden wollen, m
üssen Sie zuerst das
70 Programm, das den Core-Dump erzeugt hat wie gerade erw
ähnt laden,
71 dann w
ählen Sie
<i>Datei|Core dump
</i> aus dem Men
ü. KDbg zeigt
72 die Stelle an, die den Core-Dump verursacht hat.
73 <p>Sie k
önnen nun Haltepunkte setzen, indem Sie die Eintr
äge
74 im Men
ü <i>Haltepunkt
</i> oder im Rechte-Maus-Men
ü oder in der
75 <a href=
"breakptlist.html">Liste
76 der Haltepunkte
</a> verwenden.
77 <p>Sie k
önnen auch
<a href=
"pgmsettings.html">programmspezifische
78 Einstellungen
</a> vornehmen, indem Sie
<i>Datei|Einstellungen
</i> w
ählen.
80 Das Programm ausf
ühren
</h4>
81 Nun f
ühren Sie das Programm aus, indem Sie
<i>Ausf
ührung|Ausf
ühren
</i>
82 w
ählen. Das Programm arbeitet nun wie gew
öhnlich, bis es beendet
83 wird, auf einen Haltepunkt oder Watchpoint trifft, oder ein Signal empf
ängt.
84 <p>Sie k
önnen das Programm mit Argumenten ausf
ühren, ein Arbeitsverzeichnis
85 festlegen und auch Umgebungsvariablen definieren. Dazu w
ählen Sie
86 <i>Ausf
ührung|Argumente
</i>
87 und machen Ihre Angaben im
<a href=
"argspwdenv.html">Programmargumente-Dialog
</a>.
88 <p>Weiters k
önnen Sie sich in ein Programm einh
ängen (
<i>attachen
</i>),
89 das bereits ausgef
ührt wird. Dazu laden Sie das Programm zuerst wie
90 oben beschrieben, dann w
ählen Sie
<i>Ausf
ührung|Attachen
</i>.
91 Geben Sie die Prozessnummer an und klicken Sie
<i>OK
</i>. Das Programm
92 wird jetzt angehalten (aber nicht beendet), und der derzeitige Stand des
93 Programms wird im
<a href=
"sourcecode.html">Quellcode-Fenster
</a> angezeigt.
95 Das Programm wurde angehalten - was nun?
</h4>
96 Wenn das Programm an einem Haltepunkt, Watchpoint oder wegen eines Signals
97 angehalten wird, zeigt das
<a href=
"sourcecode.html">Quellcode-Fenster
</a>
98 die Zeile, in der das Programm gerade arbeitete. Es passiert h
äufig,
99 dass das Programm wegen eine Signals (oftmals
<tt>SIGSEGV
</tt>, Speicherzugriffsfehler)
100 in einer Funktion angehalten wird, die sich nicht in jenem Programmteil
101 befindet, den Sie geschrieben haben. In diesem Fall betrachten Sie das
102 <a href=
"stack.html">Stack-Fenster
</a>
103 genauer: Suchen Sie nach einer Funktion, die Sie geschrieben haben (beginnen
104 Sie am oberen Ende) und klicken Sie darauf. Das bringt Sie an eine Stelle,
105 an der Sie mit der Suche nach dem tats
ächlichen Programmfehler beginnen
107 <p>Im Men
ü <i>Ausf
ührung
</i> finden Sie Befehle, die Sie zum
108 Ausf
ühren und schrittweisen Abarbeiten des Programms verwenden. Weiters
109 k
önnen Sie das laufende Programm unterbrechen. Die wichtigen Befehle
110 k
önnen auch mit Funktionstasten gegeben werden. Zum effizienten Arbeiten
111 empfehle ich, dass Sie sich diese Tasten eingew
öhnen.
112 <br><font size=-
1>Diese Funktionen sind nicht konfigurierbar, aber vielleicht
113 wollen Sie ein St
ückchen Code beisteuern, mit dem das geht?
</font>
114 <p>Im Men
ü <i>Haltepunkt
</i> finden Sie Befehle zum Setzen, Entfernen,
115 Aktivieren und Inaktivieren von permanenten und tempor
ären Haltepunkten.
116 Nat
ürlich k
önnen Sie auch eine
<a href=
"breakptlist.html">Liste
117 der Haltepunkte
</a> anzeigen. Sie k
önnen einen Haltepunkt auch setzen,
118 indem Sie mit der Maus in den Freiraum links der entsprechenden Quellcode-Zeile
119 klicken (mit der linken Maustaste); weiters k
önnen sie einen vorhandenen
120 Haltepunkt mit der mittleren Maustaste aktivieren und deaktivieren.
121 <p>Das Zahnrad in der Werkzeugleiste zeigt an, ob
<tt>gdb
</tt> gerade arbeitet:
122 Dies ist der Fall, wenn es rotiert. Solange es schnell rotiert, nimmt KDbg
123 kein Eingaben an; wenn es langsam rotiert, aktualisiert KDbg gerade alle
126 <a NAME=
"InfoWindows"></a>Die Informationsfenster von KDbg
</h2>
127 KDbg zeigt Information in einer Reihe verschiedener Fenster an. Im Men
ü
129 finden Sie die Befehle, die diese Fenster anzeigen und schliessen. Es handelt
130 sich dabei um
<i>dockende
</i> Fenster, sodass Sie deren Anordnung beliebig
131 ver
ändern k
önnen.
134 <a href=
"sourcecode.html">Das Quellcode-Fenster
</a></li>
137 <a href=
"localvars.html">Lokale Variablen
</a></li>
140 <a href=
"stack.html">Der Programm-Stack
</a></li>
143 <a href=
"watches.html">Ausdr
ücke (
<i>Watches
</i>)
</a></li>
146 <a href=
"breakptlist.html">Die Liste der Haltepunkte
</a></li>
149 <a href=
"pgmoutput.html">Das Programmausgabefenster
</a></li>
152 <a href=
"registers.html">Die Registerinhalt
</a></li>
155 <a href=
"memory.html">Der Speicherinhalt
</a></li>
158 <a href=
"threads.html">Die Programm-Threads
</a></li>
162 <a NAME=
"TipsTricks"></a>Tipps und so weiter
</h2>
166 <a href=
"tips.html">Tipps
</a></li>
169 <a href=
"howdoi.html">Wie kann ich...?
</a></li>
173 <a NAME=
"KnownProblems"></a>Bekannte Probleme
</h2>
174 <tt>gdb
</tt>4.16 hat Probleme bei der Handhabung von C++-Klassen mit virtuellen
175 Basisklassen. (Diese kommen h
äufig in CORBA-Programmen vor.) Gdb st
ürzt
176 dabei h
äufig aufgrund eines Speicherzugriffsfehlers ab. KDbg erkennt,
177 wenn
<tt>gdb
</tt> unerwartet beendet wird. Leider l
ässt sich nicht
178 wirklich was dagegen unternehmen. Sie m
üssen
<tt>gdb
</tt> mittels
179 <i>Datei|Programm
</i>
180 neu starten, das hei
ßt auch f
ür die Debug-Sitzung zur
ück
182 <p>Die Typerkennung von KDbg arbeitet nur, wenn die Bibilotheken dynamisch
183 ins Programm gebunden sind.
185 <a NAME=
"Author"></a>Autor
</h2>
186 KDbg wurde von
<a href=
"mailto:Johannes.Sixt@telecom.at">Johannes Sixt
</a>
187 mit vielen weiteren Helfern geschrieben.
188 <br>Die KDbg-Homepage befindet sich unter
<a href=
"http://members.nextra.at/johsixt/kdbg.html">http://members.nextra.at/johsixt/kdbg.html
</a>.