You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
191 lines
7.9 KiB
191 lines
7.9 KiB
12 years ago
|
<!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ü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äche fü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ü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ändig von den Fähigkeiten
|
||
|
des verwendeten Befehlszeilendebuggers, <tt>gdb</tt>, abhä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ü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üfen, indem Sie <i>Datei|Globale Einstellungen</i>
|
||
|
aufrufen.
|
||
|
<h4>
|
||
|
Ein zu debuggendes Program angeben</h4>
|
||
|
Um ein Programm zu debuggen, wählen Sie <i>Datei|Programm</i>. Wenn
|
||
|
Sie das Programm schon einmal debuggt haben, können Sie es auch aus
|
||
|
der Liste unter <i>Datei|Zuletzt göffnete Programme</i> wählen.
|
||
|
Das Programm wird jetzt geladen.
|
||
|
<p>Wenn Sie einen Core-Dump verwenden wollen, müssen Sie zuerst das
|
||
|
Programm, das den Core-Dump erzeugt hat wie gerade erwähnt laden,
|
||
|
dann wählen Sie <i>Datei|Core dump</i> aus dem Menü. KDbg zeigt
|
||
|
die Stelle an, die den Core-Dump verursacht hat.
|
||
|
<p>Sie können nun Haltepunkte setzen, indem Sie die Einträge
|
||
|
im Menü <i>Haltepunkt</i> oder im Rechte-Maus-Menü oder in der
|
||
|
<a href="breakptlist.html">Liste
|
||
|
der Haltepunkte</a> verwenden.
|
||
|
<p>Sie können auch <a href="pgmsettings.html">programmspezifische
|
||
|
Einstellungen</a> vornehmen, indem Sie <i>Datei|Einstellungen</i> wählen.
|
||
|
<h4>
|
||
|
Das Programm ausführen</h4>
|
||
|
Nun führen Sie das Programm aus, indem Sie <i>Ausführung|Ausführen</i>
|
||
|
wählen. Das Programm arbeitet nun wie gewöhnlich, bis es beendet
|
||
|
wird, auf einen Haltepunkt oder Watchpoint trifft, oder ein Signal empfängt.
|
||
|
<p>Sie können das Programm mit Argumenten ausführen, ein Arbeitsverzeichnis
|
||
|
festlegen und auch Umgebungsvariablen definieren. Dazu wählen Sie
|
||
|
<i>Ausführung|Argumente</i>
|
||
|
und machen Ihre Angaben im <a href="argspwdenv.html">Programmargumente-Dialog</a>.
|
||
|
<p>Weiters können Sie sich in ein Programm einhängen (<i>attachen</i>),
|
||
|
das bereits ausgeführt wird. Dazu laden Sie das Programm zuerst wie
|
||
|
oben beschrieben, dann wählen Sie <i>Ausfü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ä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ächlichen Programmfehler beginnen
|
||
|
können.
|
||
|
<p>Im Menü <i>Ausführung</i> finden Sie Befehle, die Sie zum
|
||
|
Ausführen und schrittweisen Abarbeiten des Programms verwenden. Weiters
|
||
|
können Sie das laufende Programm unterbrechen. Die wichtigen Befehle
|
||
|
können auch mit Funktionstasten gegeben werden. Zum effizienten Arbeiten
|
||
|
empfehle ich, dass Sie sich diese Tasten eingewöhnen.
|
||
|
<br><font size=-1>Diese Funktionen sind nicht konfigurierbar, aber vielleicht
|
||
|
wollen Sie ein Stückchen Code beisteuern, mit dem das geht?</font>
|
||
|
<p>Im Menü <i>Haltepunkt</i> finden Sie Befehle zum Setzen, Entfernen,
|
||
|
Aktivieren und Inaktivieren von permanenten und temporären Haltepunkten.
|
||
|
Natürlich können Sie auch eine <a href="breakptlist.html">Liste
|
||
|
der Haltepunkte</a> anzeigen. Sie kö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ö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ü
|
||
|
<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ändern kö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ü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äufig in CORBA-Programmen vor.) Gdb stürzt
|
||
|
dabei häufig aufgrund eines Speicherzugriffsfehlers ab. KDbg erkennt,
|
||
|
wenn <tt>gdb</tt> unerwartet beendet wird. Leider lässt sich nicht
|
||
|
wirklich was dagegen unternehmen. Sie müssen <tt>gdb</tt> mittels
|
||
|
<i>Datei|Programm</i>
|
||
|
neu starten, das heißt auch für die Debug-Sitzung zurü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>
|