summaryrefslogtreecommitdiffstats
path: root/doc/de/index.html
blob: 5a69b7e7eb9939ed299209e3fba7c8de094cff02 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
   <meta name="GENERATOR" content="Mozilla/4.74 [en] (X11; U; Linux 2.2.16-SMP i686) [Netscape]">
   <meta name="Author" content="Johannes Sixt">
   <title>KDbg - Benutzerhandbuch</title>
</head>
<body text="#000000" bgcolor="#FFFFFF" link="#0000EF" vlink="#51188E" alink="#FF0000">

<h1>
KDbg - Benutzerhandbuch</h1>

<h2>
Inhalt</h2>

<ul>
<li>
<a href="#Introduction">Einleitung</a></li>

<li>
<a href="#UsingKDbg">Mit KDbg arbeiten</a></li>

<li>
<a href="#InfoWindows">Die Informationsfenster von KDbg</a></li>

<li>
<a href="#TipsTricks">Tipps und so weiter</a></li>

<li>
F&uuml;r Fortgeschrittene: <a href="../../en/kdbg/types.html">Typentabellen</a>
(nur Englisch)</li>

<li>
<a href="#KnownProblems">Bekannte Probleme</a></li>

<li>
<a href="#Author">Autor</a></li>
</ul>

<hr>
<h2>
<a NAME="Introduction"></a>Einleitung</h2>
KDbg ist eine grafische Benutzeroberfl&auml;che f&uuml;r <tt>gdb</tt>,
den GNU-Debugger.
<p>Das bedeutet, dass KDbg selbst nicht der Debugger ist. Vielmehr kommuniziert
KDbg mit <tt>gdb</tt>, indem Befehlszeilen and diesen geschickt werden
und die Ausgabe, wie z.B. Variablenwerte, entgegengenommen werden. Die
Men&uuml;befehle und Mausklicks werden in <tt>gdb</tt>-Befehle umgesetzt,
und die Ausgabe von <tt>gdb</tt> wird in (mehr oder weniger) sichtbare
Information umgesetzt, wie zum Beispiel die Struktur von Variablen.
<p>Eine Folge davon ist, dass KDbg vollst&auml;ndig von den F&auml;higkeiten
des verwendeten Befehlszeilendebuggers, <tt>gdb</tt>, abh&auml;ngig ist.
KDbg kann nicht mehr als <tt>gdb</tt> leisten. Wenn Sie zum Beispiel einen
<tt>gdb</tt>
haben, der Programme mit Threads nicht unterst&uuml;tzt, dann kann auch
KDbg das nicht (obwohl ein Threads-Fenster vorhanden ist).
<h2>
<a NAME="UsingKDbg"></a>Mit KDbg arbeiten</h2>
Bevor Sie mit der Arbeit beginnen, sollten Sie die <a href="globaloptions.html">globalen
Einstellungen</a> pr&uuml;fen, indem Sie <i>Datei|Globale Einstellungen</i>
aufrufen.
<h4>
Ein zu debuggendes Program angeben</h4>
Um ein Programm zu debuggen, w&auml;hlen Sie <i>Datei|Programm</i>. Wenn
Sie das Programm schon einmal debuggt haben, k&ouml;nnen Sie es auch aus
der Liste unter <i>Datei|Zuletzt g&ouml;ffnete Programme</i> w&auml;hlen.
Das Programm wird jetzt geladen.
<p>Wenn Sie einen Core-Dump verwenden wollen, m&uuml;ssen Sie zuerst das
Programm, das den Core-Dump erzeugt hat wie gerade erw&auml;hnt laden,
dann w&auml;hlen Sie <i>Datei|Core dump</i> aus dem Men&uuml;. KDbg zeigt
die Stelle an, die den Core-Dump verursacht hat.
<p>Sie k&ouml;nnen nun Haltepunkte setzen, indem Sie die Eintr&auml;ge
im Men&uuml; <i>Haltepunkt</i> oder im Rechte-Maus-Men&uuml; oder in der
<a href="breakptlist.html">Liste
der Haltepunkte</a> verwenden.
<p>Sie k&ouml;nnen auch <a href="pgmsettings.html">programmspezifische
Einstellungen</a> vornehmen, indem Sie <i>Datei|Einstellungen</i> w&auml;hlen.
<h4>
Das Programm ausf&uuml;hren</h4>
Nun f&uuml;hren Sie das Programm aus, indem Sie <i>Ausf&uuml;hrung|Ausf&uuml;hren</i>
w&auml;hlen. Das Programm arbeitet nun wie gew&ouml;hnlich, bis es beendet
wird, auf einen Haltepunkt oder Watchpoint trifft, oder ein Signal empf&auml;ngt.
<p>Sie k&ouml;nnen das Programm mit Argumenten ausf&uuml;hren, ein Arbeitsverzeichnis
festlegen und auch Umgebungsvariablen definieren. Dazu w&auml;hlen Sie
<i>Ausf&uuml;hrung|Argumente</i>
und machen Ihre Angaben im <a href="argspwdenv.html">Programmargumente-Dialog</a>.
<p>Weiters k&ouml;nnen Sie sich in ein Programm einh&auml;ngen (<i>attachen</i>),
das bereits ausgef&uuml;hrt wird. Dazu laden Sie das Programm zuerst wie
oben beschrieben, dann w&auml;hlen Sie <i>Ausf&uuml;hrung|Attachen</i>.
Geben Sie die Prozessnummer an und klicken Sie <i>OK</i>. Das Programm
wird jetzt angehalten (aber nicht beendet), und der derzeitige Stand des
Programms wird im <a href="sourcecode.html">Quellcode-Fenster</a> angezeigt.
<h4>
Das Programm wurde angehalten - was nun?</h4>
Wenn das Programm an einem Haltepunkt, Watchpoint oder wegen eines Signals
angehalten wird, zeigt das <a href="sourcecode.html">Quellcode-Fenster</a>
die Zeile, in der das Programm gerade arbeitete. Es passiert h&auml;ufig,
dass das Programm wegen eine Signals (oftmals <tt>SIGSEGV</tt>, Speicherzugriffsfehler)
in einer Funktion angehalten wird, die sich nicht in jenem Programmteil
befindet, den Sie geschrieben haben. In diesem Fall betrachten Sie das
<a href="stack.html">Stack-Fenster</a>
genauer: Suchen Sie nach einer Funktion, die Sie geschrieben haben (beginnen
Sie am oberen Ende) und klicken Sie darauf. Das bringt Sie an eine Stelle,
an der Sie mit der Suche nach dem tats&auml;chlichen Programmfehler beginnen
k&ouml;nnen.
<p>Im Men&uuml; <i>Ausf&uuml;hrung</i> finden Sie Befehle, die Sie zum
Ausf&uuml;hren und schrittweisen Abarbeiten des Programms verwenden. Weiters
k&ouml;nnen Sie das laufende Programm unterbrechen. Die wichtigen Befehle
k&ouml;nnen auch mit Funktionstasten gegeben werden. Zum effizienten Arbeiten
empfehle ich, dass Sie sich diese Tasten eingew&ouml;hnen.
<br><font size=-1>Diese Funktionen sind nicht konfigurierbar, aber vielleicht
wollen Sie ein St&uuml;ckchen Code beisteuern, mit dem das geht?</font>
<p>Im Men&uuml; <i>Haltepunkt</i> finden Sie Befehle zum Setzen, Entfernen,
Aktivieren und Inaktivieren von permanenten und tempor&auml;ren Haltepunkten.
Nat&uuml;rlich k&ouml;nnen Sie auch eine <a href="breakptlist.html">Liste
der Haltepunkte</a> anzeigen. Sie k&ouml;nnen einen Haltepunkt auch setzen,
indem Sie mit der Maus in den Freiraum links der entsprechenden Quellcode-Zeile
klicken (mit der linken Maustaste); weiters k&ouml;nnen sie einen vorhandenen
Haltepunkt mit der mittleren Maustaste aktivieren und deaktivieren.
<p>Das Zahnrad in der Werkzeugleiste zeigt an, ob <tt>gdb</tt> gerade arbeitet:
Dies ist der Fall, wenn es rotiert. Solange es schnell rotiert, nimmt KDbg
kein Eingaben an; wenn es langsam rotiert, aktualisiert KDbg gerade alle
Variablenanzeigen.
<h2>
<a NAME="InfoWindows"></a>Die Informationsfenster von KDbg</h2>
KDbg zeigt Information in einer Reihe verschiedener Fenster an. Im Men&uuml;
<i>Ansicht</i>
finden Sie die Befehle, die diese Fenster anzeigen und schliessen. Es handelt
sich dabei um <i>dockende</i> Fenster, sodass Sie deren Anordnung beliebig
ver&auml;ndern k&ouml;nnen.
<ul>
<li>
<a href="sourcecode.html">Das Quellcode-Fenster</a></li>

<li>
<a href="localvars.html">Lokale Variablen</a></li>

<li>
<a href="stack.html">Der Programm-Stack</a></li>

<li>
<a href="watches.html">Ausdr&uuml;cke (<i>Watches</i>)</a></li>

<li>
<a href="breakptlist.html">Die Liste der Haltepunkte</a></li>

<li>
<a href="pgmoutput.html">Das Programmausgabefenster</a></li>

<li>
<a href="registers.html">Die Registerinhalt</a></li>

<li>
<a href="memory.html">Der Speicherinhalt</a></li>

<li>
<a href="threads.html">Die Programm-Threads</a></li>
</ul>

<h2>
<a NAME="TipsTricks"></a>Tipps und so weiter</h2>

<ul>
<li>
<a href="tips.html">Tipps</a></li>

<li>
<a href="howdoi.html">Wie kann ich...?</a></li>
</ul>

<h2>
<a NAME="KnownProblems"></a>Bekannte Probleme</h2>
<tt>gdb </tt>4.16 hat Probleme bei der Handhabung von C++-Klassen mit virtuellen
Basisklassen. (Diese kommen h&auml;ufig in CORBA-Programmen vor.) Gdb st&uuml;rzt
dabei h&auml;ufig aufgrund eines Speicherzugriffsfehlers ab. KDbg erkennt,
wenn <tt>gdb</tt> unerwartet beendet wird. Leider l&auml;sst sich nicht
wirklich was dagegen unternehmen. Sie m&uuml;ssen <tt>gdb</tt> mittels
<i>Datei|Programm</i>
neu starten, das hei&szlig;t auch f&uuml;r die Debug-Sitzung zur&uuml;ck
an den Start :-(.
<p>Die Typerkennung von KDbg arbeitet nur, wenn die Bibilotheken dynamisch
ins Programm gebunden sind.
<h2>
<a NAME="Author"></a>Autor</h2>
KDbg wurde von <a href="mailto:j6t@kdbg.org">Johannes Sixt</a>
mit vielen weiteren Helfern geschrieben.
<br>Die KDbg-Homepage befindet sich unter <a href="http://www.kdbg.org/">http://www.kdbg.org/</a>.
</body>
</html>