From d25245fe76e6b975515d0d39636b38d08c5a9c61 Mon Sep 17 00:00:00 2001 From: Ray-V Date: Sun, 13 Jun 2021 21:47:32 +0100 Subject: Remove CMakeLists.txt for doc Move doc directory up a level from kdbg/doc Add macro call to source root CMakeLists.txt Remove tde_conditional_add_subdirectory() macro call for doc Signed-off-by: Ray-V (cherry picked from commit ae6f04289851574f38aedbd4666f7154cc67cad3) --- doc/de/argspwdenv.html | 50 ++++++++++++ doc/de/breakptlist.html | 82 ++++++++++++++++++++ doc/de/globaloptions.html | 72 ++++++++++++++++++ doc/de/howdoi.html | 83 ++++++++++++++++++++ doc/de/index.html | 190 ++++++++++++++++++++++++++++++++++++++++++++++ doc/de/localvars.html | 25 ++++++ doc/de/memory.html | 29 +++++++ doc/de/pgmoutput.html | 52 +++++++++++++ doc/de/pgmsettings.html | 83 ++++++++++++++++++++ doc/de/registers.html | 37 +++++++++ doc/de/sourcecode.html | 30 ++++++++ doc/de/stack.html | 25 ++++++ doc/de/threads.html | 44 +++++++++++ doc/de/tips.html | 45 +++++++++++ doc/de/watches.html | 27 +++++++ doc/en/argspwdenv.html | 42 ++++++++++ doc/en/breakptlist.html | 93 +++++++++++++++++++++++ doc/en/globaloptions.html | 78 +++++++++++++++++++ doc/en/howdoi.html | 76 +++++++++++++++++++ doc/en/index.html | 185 ++++++++++++++++++++++++++++++++++++++++++++ doc/en/invocation.html | 34 +++++++++ doc/en/localvars.html | 28 +++++++ doc/en/memory.html | 26 +++++++ doc/en/pgmoutput.html | 46 +++++++++++ doc/en/pgmsettings.html | 81 ++++++++++++++++++++ doc/en/registers.html | 35 +++++++++ doc/en/sourcecode.html | 28 +++++++ doc/en/stack.html | 23 ++++++ doc/en/threads.html | 42 ++++++++++ doc/en/tips.html | 47 ++++++++++++ doc/en/types.html | 183 ++++++++++++++++++++++++++++++++++++++++++++ doc/en/watches.html | 28 +++++++ doc/en/xslt.html | 24 ++++++ doc/man/kdbg.1 | 92 ++++++++++++++++++++++ doc/ru/argspwdenv.html | 43 +++++++++++ doc/ru/breakptlist.html | 68 +++++++++++++++++ doc/ru/globaloptions.html | 72 ++++++++++++++++++ doc/ru/howdoi.html | 78 +++++++++++++++++++ doc/ru/index.html | 177 ++++++++++++++++++++++++++++++++++++++++++ doc/ru/localvars.html | 19 +++++ doc/ru/memory.html | 26 +++++++ doc/ru/pgmoutput.html | 43 +++++++++++ doc/ru/pgmsettings.html | 73 ++++++++++++++++++ doc/ru/registers.html | 31 ++++++++ doc/ru/sourcecode.html | 31 ++++++++ doc/ru/stack.html | 23 ++++++ doc/ru/threads.html | 38 ++++++++++ doc/ru/tips.html | 43 +++++++++++ doc/ru/types.html | 126 ++++++++++++++++++++++++++++++ doc/ru/watches.html | 20 +++++ 50 files changed, 2976 insertions(+) create mode 100644 doc/de/argspwdenv.html create mode 100644 doc/de/breakptlist.html create mode 100644 doc/de/globaloptions.html create mode 100644 doc/de/howdoi.html create mode 100644 doc/de/index.html create mode 100644 doc/de/localvars.html create mode 100644 doc/de/memory.html create mode 100644 doc/de/pgmoutput.html create mode 100644 doc/de/pgmsettings.html create mode 100644 doc/de/registers.html create mode 100644 doc/de/sourcecode.html create mode 100644 doc/de/stack.html create mode 100644 doc/de/threads.html create mode 100644 doc/de/tips.html create mode 100644 doc/de/watches.html create mode 100644 doc/en/argspwdenv.html create mode 100644 doc/en/breakptlist.html create mode 100644 doc/en/globaloptions.html create mode 100644 doc/en/howdoi.html create mode 100644 doc/en/index.html create mode 100644 doc/en/invocation.html create mode 100644 doc/en/localvars.html create mode 100644 doc/en/memory.html create mode 100644 doc/en/pgmoutput.html create mode 100644 doc/en/pgmsettings.html create mode 100644 doc/en/registers.html create mode 100644 doc/en/sourcecode.html create mode 100644 doc/en/stack.html create mode 100644 doc/en/threads.html create mode 100644 doc/en/tips.html create mode 100644 doc/en/types.html create mode 100644 doc/en/watches.html create mode 100644 doc/en/xslt.html create mode 100644 doc/man/kdbg.1 create mode 100644 doc/ru/argspwdenv.html create mode 100644 doc/ru/breakptlist.html create mode 100644 doc/ru/globaloptions.html create mode 100644 doc/ru/howdoi.html create mode 100644 doc/ru/index.html create mode 100644 doc/ru/localvars.html create mode 100644 doc/ru/memory.html create mode 100644 doc/ru/pgmoutput.html create mode 100644 doc/ru/pgmsettings.html create mode 100644 doc/ru/registers.html create mode 100644 doc/ru/sourcecode.html create mode 100644 doc/ru/stack.html create mode 100644 doc/ru/threads.html create mode 100644 doc/ru/tips.html create mode 100644 doc/ru/types.html create mode 100644 doc/ru/watches.html (limited to 'doc') diff --git a/doc/de/argspwdenv.html b/doc/de/argspwdenv.html new file mode 100644 index 0000000..696221f --- /dev/null +++ b/doc/de/argspwdenv.html @@ -0,0 +1,50 @@ + + + + + + + KDbg - Benutzerhandbuch - Argumente, Arbeitsverzeichnis, Umgebungsvariablen + + +Inhalt +

+Programmargumente, Arbeitsverzeichnis, Umgebungsvariablen +setzen

+Mit Ausführen|Argumente öffnen Sie einen Dialog, in dem +Sie Programmargumente, das Arbeitsverzeichnis sowie Umgebungsvariablen +setzen können. +

+Programmargumente

+In der obersten Eingabezeile können Sie die Programmargumente eingeben, +die an das Programm übergeben werden sollen. Diese werden beim nächsten +Programmstart verwendet. +

+Arbeitsverzeichnis

+Im Eingabefeld darunter können Sie das Arbeitsverzeichnis angeben. +Dieses wird sofort an gdb übergeben, sobald Sie OK drücken. +Das Programm verwendet das neue Arbeitsverzeichnis allerdings erst beim +nächsten Start. +

Das Arbeitsverzeichnis gilt auch für gdb selbst! Das angegebene +Arbeitsverzeichnis wird sofort an gdb weitergegeben, d.h. gdb wird die +neue Einstellung verwenden, sobald Sie OK drücken. Das kann +einen Einfluss darauf haben, ob gdb Quellcodedateien findet. +

+Umgebungsvariablen

+Im Bereich für Umgebungsvariablen können Sie einen Ausdruck in +der Form +VARIABLE=Wert eingeben und dann Ändern klicken, +um der Umgebungsvariablen VARIABLE einen Wert zuzuweisen. +Um eine Variable zu entfernen, wählen Sie diese zuerst aus der Liste +darunter aus und klicken dan Löschen. Um einen Wert zu ändern, +geben Sie einfach den neuen Wert ein und klicken Ändern. Wenn +Sie den Namen der Variable ändern und Ändern clicken, +erzeugen Sie eine neue Variable! Die neuen Umgebungsvariablen werden erst +beim nächsten Programmstart verwendet. +

Wenn Sie glibc2 unter Linux verwenden, ist es sehr wichtig, dass Sie +der Umgebungsvariablen LD_BIND_NOW den Wert 1 zuweisen. +Wenn diese Variable nicht gesetzt ist, können solche Funktionen nicht +betreten werden, die von der Bibliothek libc und anderen Shared +Libraries importiert werden. + + diff --git a/doc/de/breakptlist.html b/doc/de/breakptlist.html new file mode 100644 index 0000000..0acb4d2 --- /dev/null +++ b/doc/de/breakptlist.html @@ -0,0 +1,82 @@ + + + + + + + KDbg - Benutzerhandbuch - Haltepunkte + + +Inhalt +

+Die Liste der Haltepunkte

+Die Liste der Haltepunkte zeigt alle gesetzten Haltepunkte und Watchpoints +und ermöglicht, diese zu manipulieren. Die Liste der Haltepunkte können +Sie mit dem Menüpunkt Ansicht|Haltepunkte anzeigen. +

+Die Übersicht

+Für jeden Haltepunkt wird folgendes angezeigt: + +Das Piktogramm links zeigt an, ob der Haltepunkt aktiviert (tiefroter Punkt) +oder deaktiviert (hellroter Punkt) ist, ob es sich um einen temporären +Haltepunkt handelt (eine winzige Uhr ist sichtbar) und ob der Haltepunkt +bedingt ist (ein Fragezeichen ist sichtbar). +

Watchpoints werden durch ein Brillensymbol gekennzeichnet. +

+Haltepunkte manipulieren

+Beachten Sie bitte, dass Haltepunkte und Watchpoints +nicht manipuliert werden können solange das zu debuggende Programm +läuft. Wenn das Programm bereits gestartet wurde, muss es zuerst angehalten +werden - entweder indem es auf einen bereits gesetzten Haltepunkt trifft +oder "gewaltsam" indem Sie Ausführung|Unterbrechen wählen. +Dadurch wird das Programm nicht beendet, sondern nur unterbrochen. Sie +können die Haltepunkte jetzt verändern. Wählen Sie danach +Ausführung|Ausführen, +um das Programm fortzusetzen. +

Am einfachsten kann ein Haltepunkt im Quellcode-Fenster +gesetzt werden. Wenn Sie den genauen Dateinamen und die Zeilennummer einer +Funktion nicht kennen, können Sie den Funktionsnamen im Feld über +der Liste eingeben und Haltepunkt wählen. +

Sie können eine Haltepunkt in der Liste auswählen seine Zustand +mittels Deaktivieren oder Aktivieren ändern. Oder Sie +klicken auf den Haltepunkt mit der mittleren Maustaste - genau so, wie +Sie im Quellcode-Fenster Haltepunkte aktivieren und deaktivieren. +

Sie können eine Bedingung setzen (sodass das Programm nur stehen +bleibt, wenn die Bedingung erfüllt ist) oder die Anzahl der zu ignorierenden +Stopps setzen (sodass das Programm die nächsten n Male nicht stehen +bleibt, die es über diesen Haltepunkt läuft). Dazu wählen +sie den Schalter Bedingt und geben die Anzahl der zu ignorierenden +Treffer und/oder die Bedingung ein. +

+Watchpoints manipulieren

+Watchpoints sind den Haltepunkten ähnlich, nur dass das Programm angehalten +wird, sobald sich der Inhalt einer Speicherstelle ändert. Ebenso wie +Haltepunkte können Watchpoints nicht manipuliert werden, solange das +Programm läuft. Weitere Hinweise dazu siehe oben. +

Einen Watchpoint können Sie setzen, indem Sie einen Ausdruck im +Feld über der Liste eingeben und Watchpoint klicken. Das Programm +wird dann angehalten, sobald sich der Wert des Ausdrucks ändert. Beachten +Sie, dass Sie Watchpoints, die eine lokale Variable benötigen, nur +setzen können, wenn das Programm von einem Haltepunkt (oder mittels +Ausführung|Unterbrechen) angehalten wurde. +

Zum Entfernen eines Watchpoints wählen Sie diesen in der Liste +aus und klicken Entfernen. Falls der Ausdruck eine lokale Variable +enthält, wird der Watchpoint automatisch entfernt, sobald das Programm +die aktive Funktion verlässt. +

Wie mit Haltepunkten können Sie eine Bedingung oder eine Anzahl +zu ignorierender Stopps setzen, indem Sie den Watchpoint auswählen +und Bedingt klicken. + + diff --git a/doc/de/globaloptions.html b/doc/de/globaloptions.html new file mode 100644 index 0000000..4c0de83 --- /dev/null +++ b/doc/de/globaloptions.html @@ -0,0 +1,72 @@ + + + + + + + KDbg - Benutzerhandbuch - Globale Einstellungen + + +Inhalt +

+Globale Einstellungen

+Mit dem Menüpunkt Datei|Globale Einstellungen können Sie +folgende Optionen einstellen: + + +

+Aufruf von gdb

+ +
Wenn Sie eine alternative Version von gdb verwenden wollen, +geben sie diese unter Aufruf von GDB an. Die Standardeinstellung +ist gdb --fullname --nx. Achtung: Sie müssen jedenfalls diese +beiden Argumente übergeben; wenn Sie sie weglassen, kann KDbg nicht +funktionieren. Wenn Sie das Eingabefeld leer lassen, wird die Standardeinstellung +verwendet.
+ +

+Aufruf eines Terminal-Emulators

+ +
Falls Sie ein anderes Terminal-Programm verwenden wollen, das +die Ausgabe des Programms anzeigt, geben Sie dieses unter Terminal für +die Programmausgabe an. Die Standardeinstellung ist xterm -name +kdbgio -title %T -e sh -c %C. In diesem Eintrag wird %T durch +eine Überschrift und %C durch ein Bourne-Shell-Skript ersetzt, +das in eine Endlosschleife landet, damit sich das Fenster nicht schließt. +(Keine Sorge, das Skript frisst keine CPU-Zeit, sondern ruft einfach nur +sleep +3600 in einer Schleife auf :) Eine alternative für diesen Eintrag +wäre zm Beispiel konsole --name kdbgio --caption %T -e +sh -c %C.
+ +

+In den Vordergrund

+ +
Sie können angeben, ob das KDbg-Fenster in den Vordergrund +gebracht werden soll, sobald das kontrollierte Programm anhält (bei +einem Breakpoint oder wegen eines Signals). Das Fenster wird allerdings +nicht aktiviert (zumindest nicht unter KWM, dem Window Manger von KDE). +Manche Benutzer werden dieses Verhalten als störend empfinden, weshalb +diese Option standardmässig ausgeschaltet ist.
+ +
Wenn diese Option eingeschaltet ist, zieht sich das KDbg-Fenster +auch wieder in den Hintergrund zurück, sobald das Programm fortgesetzt +wird. Allerdings geschieht das erst nach einer Verzögerung, die ebenfalls +angegeben werden kann. Dadurch wird verhindert, dass das Fenster ständig +nach hinten und vorne blinkt, sobald Sie einen Einzelschritt-Befehl absetzen.
+ + + diff --git a/doc/de/howdoi.html b/doc/de/howdoi.html new file mode 100644 index 0000000..87d08ae --- /dev/null +++ b/doc/de/howdoi.html @@ -0,0 +1,83 @@ + + + + + + + KDbg - Benutzerhandbuch - Wie kann ich...? + + +Inhalt +

+Wie kann ich...?

+ +

+... eine Haltepunkt setzen?

+Dafür gibt's mehrere Möglichkeiten: + +Wenn Sie keinen Haltepunkt setzen können, könnte es sein, dass +das Programm gerade läuft. Sie können keine Haltepunkte setzen, +solange das Programm läuft. Halten Sie es zuerst mit Ausführung|Unterbrechen +an. Falls Sie dann noch immer keine Haltepunkte setzen können, versichern +Sie sich, dass Sie das Programm mit Debug-Information übersetzt und +gebunden haben. +

+... den Wert einer globalen Variablen oder eines beliebigen Ausdrucks anzeigen?

+Benutzen Sie das Ausdrücke-Fenster. +

+... Watchpoints setzen?

+Watchpoints können über die Liste +der Haltepunkte bearbeitet werden. +

+... einen Core-Dump benutzen?

+Laden Sie zuerst das Programm mittels Datei|Programm, dann geben +Sie den Core-Dump mittels Datei|Core dump an. +

+... ein Programm debuggen, das sich in eine Endlosschleife verlaufen hat?

+Starten Sie das Programm und lassen Sie es laufen, bis es in die Endlosschleife +gelangt. Dann schalten Sie um zu KDbg und wählen Ausführung|Unterbrechen. +Hiermit haben Sie das Programm in flagranti erwischt! +

+... erreichen, dass das Programm einigemale über einen Haltepunkt +drüberläuft, ohne anzuhalten?

+In der Liste der Haltepunkte wählen +Sie den Haltepunkt; dann klicken Sie Bedingt und geben die Anzahl +in Ignoriere nächste Treffer an. +

+... eine Umgebungsvariable für das Programm setzen?

+Wählen Sie Ausführung|Argumente und geben die Umgebungsvariable +im Argumente-Dialog an. +

+... ein Arbeitsverzeichnis für das Programm wählen?

+Wählen Sie Ausführung|Argumente und geben das Arbeitsverzeichnis +im Argumente-Dialog an. +

+... das Terminal-Fenster los werden?

+Wählen Sie Datei|Einstellungen und schalten auf das Register +Ausgabe +um. Wählen Sie Nur Ausgabe, einfache Terminalemulation und +klicken Sie OK. Nun müssen Sie das Programm neu laden (am einfachsten +wählen Sie es aus der Liste unter Datei|Zuletzt geöffnete +Programme). Die Programmausgaben werden nun in das eingebaute Ausgabefenster +geschrieben und stdin ist auf /dev/null umgeleitet. +

Sie müssen diese Einstellungen für jedes neue Programm wiederholen, +das Sie debuggen. +

Wichtig: Sie sollten dies nicht tun, falls Ihr Programm +Eingaben vom Terminal (normalerweise stdin) erwartet oder falls mehr als +nur einfache Terminalemultionen benötigt werden (mehr als nur Wagenrücklauf +und Zeilenvorschub). Das eingebaute Ausgabefenster unterstützt keine +Eingaben oder Terminalemulationen. + + diff --git a/doc/de/index.html b/doc/de/index.html new file mode 100644 index 0000000..5a69b7e --- /dev/null +++ b/doc/de/index.html @@ -0,0 +1,190 @@ + + + + + + + KDbg - Benutzerhandbuch + + + +

+KDbg - Benutzerhandbuch

+ +

+Inhalt

+ + + +
+

+Einleitung

+KDbg ist eine grafische Benutzeroberfläche für gdb, +den GNU-Debugger. +

Das bedeutet, dass KDbg selbst nicht der Debugger ist. Vielmehr kommuniziert +KDbg mit gdb, indem Befehlszeilen and diesen geschickt werden +und die Ausgabe, wie z.B. Variablenwerte, entgegengenommen werden. Die +Menübefehle und Mausklicks werden in gdb-Befehle umgesetzt, +und die Ausgabe von gdb wird in (mehr oder weniger) sichtbare +Information umgesetzt, wie zum Beispiel die Struktur von Variablen. +

Eine Folge davon ist, dass KDbg vollständig von den Fähigkeiten +des verwendeten Befehlszeilendebuggers, gdb, abhängig ist. +KDbg kann nicht mehr als gdb leisten. Wenn Sie zum Beispiel einen +gdb +haben, der Programme mit Threads nicht unterstützt, dann kann auch +KDbg das nicht (obwohl ein Threads-Fenster vorhanden ist). +

+Mit KDbg arbeiten

+Bevor Sie mit der Arbeit beginnen, sollten Sie die globalen +Einstellungen prüfen, indem Sie Datei|Globale Einstellungen +aufrufen. +

+Ein zu debuggendes Program angeben

+Um ein Programm zu debuggen, wählen Sie Datei|Programm. Wenn +Sie das Programm schon einmal debuggt haben, können Sie es auch aus +der Liste unter Datei|Zuletzt göffnete Programme wählen. +Das Programm wird jetzt geladen. +

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 Datei|Core dump aus dem Menü. KDbg zeigt +die Stelle an, die den Core-Dump verursacht hat. +

Sie können nun Haltepunkte setzen, indem Sie die Einträge +im Menü Haltepunkt oder im Rechte-Maus-Menü oder in der +Liste +der Haltepunkte verwenden. +

Sie können auch programmspezifische +Einstellungen vornehmen, indem Sie Datei|Einstellungen wählen. +

+Das Programm ausführen

+Nun führen Sie das Programm aus, indem Sie Ausführung|Ausführen +wählen. Das Programm arbeitet nun wie gewöhnlich, bis es beendet +wird, auf einen Haltepunkt oder Watchpoint trifft, oder ein Signal empfängt. +

Sie können das Programm mit Argumenten ausführen, ein Arbeitsverzeichnis +festlegen und auch Umgebungsvariablen definieren. Dazu wählen Sie +Ausführung|Argumente +und machen Ihre Angaben im Programmargumente-Dialog. +

Weiters können Sie sich in ein Programm einhängen (attachen), +das bereits ausgeführt wird. Dazu laden Sie das Programm zuerst wie +oben beschrieben, dann wählen Sie Ausführung|Attachen. +Geben Sie die Prozessnummer an und klicken Sie OK. Das Programm +wird jetzt angehalten (aber nicht beendet), und der derzeitige Stand des +Programms wird im Quellcode-Fenster angezeigt. +

+Das Programm wurde angehalten - was nun?

+Wenn das Programm an einem Haltepunkt, Watchpoint oder wegen eines Signals +angehalten wird, zeigt das Quellcode-Fenster +die Zeile, in der das Programm gerade arbeitete. Es passiert häufig, +dass das Programm wegen eine Signals (oftmals SIGSEGV, Speicherzugriffsfehler) +in einer Funktion angehalten wird, die sich nicht in jenem Programmteil +befindet, den Sie geschrieben haben. In diesem Fall betrachten Sie das +Stack-Fenster +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. +

Im Menü Ausführung 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. +
Diese Funktionen sind nicht konfigurierbar, aber vielleicht +wollen Sie ein Stückchen Code beisteuern, mit dem das geht? +

Im Menü Haltepunkt finden Sie Befehle zum Setzen, Entfernen, +Aktivieren und Inaktivieren von permanenten und temporären Haltepunkten. +Natürlich können Sie auch eine Liste +der Haltepunkte 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. +

Das Zahnrad in der Werkzeugleiste zeigt an, ob gdb 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. +

+Die Informationsfenster von KDbg

+KDbg zeigt Information in einer Reihe verschiedener Fenster an. Im Menü +Ansicht +finden Sie die Befehle, die diese Fenster anzeigen und schliessen. Es handelt +sich dabei um dockende Fenster, sodass Sie deren Anordnung beliebig +verändern können. + + +

+Tipps und so weiter

+ + + +

+Bekannte Probleme

+gdb 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 gdb unerwartet beendet wird. Leider lässt sich nicht +wirklich was dagegen unternehmen. Sie müssen gdb mittels +Datei|Programm +neu starten, das heißt auch für die Debug-Sitzung zurück +an den Start :-(. +

Die Typerkennung von KDbg arbeitet nur, wenn die Bibilotheken dynamisch +ins Programm gebunden sind. +

+Autor

+KDbg wurde von Johannes Sixt +mit vielen weiteren Helfern geschrieben. +
Die KDbg-Homepage befindet sich unter http://www.kdbg.org/. + + diff --git a/doc/de/localvars.html b/doc/de/localvars.html new file mode 100644 index 0000000..8b1d36c --- /dev/null +++ b/doc/de/localvars.html @@ -0,0 +1,25 @@ + + + + + + + KDbg - Benutzerhandbuch - Lokale Variablen + + +Inhalt +

+Lokale Variablen

+Mittels Ansicht|Lokale Variablen wird das Fenster für die lokalen +Variablen angezeigt. Darin wird der Inhalt der lokalen Variablen des aktiven +Stack-Frames angezeigt. +

Das im Stack-Fenster ausgewählte Frame +bestimmt die lokalen Variablen, die hier angezeigt werden. +

Sobald das Programm angehalten wird (z.B. durch einen Haltepunkt), wird +die Anzeige aktualisiert. Variablenwerte, die sich seit dem letzten Anhalten +geändert haben, werden rot hervorgehoben. +

Sie können die ausgewählte Variable oder Struktur-Member in +das Ausdrückefenster kopieren, indem Sie +mittels der rechten Maustaste das kleine Kontextmenü aufrufen. + + diff --git a/doc/de/memory.html b/doc/de/memory.html new file mode 100644 index 0000000..06a2a5e --- /dev/null +++ b/doc/de/memory.html @@ -0,0 +1,29 @@ + + + + + + + KDbg - Benutzerhandbuch - Speicherinhalt + + +Inhalt +

+Der Speicherinhalt

+Das Fenster zur Anzeige des Speicherinhalts können Sie mittels Ansicht|Speicher +aufrufen. Es zeigt den Inhalt des Speichers des Programms an beliebigen +Adressen an. +

Um Speicherinhalt anzuzeigen, geben Sie eine Adresse an. Die Adresse +braucht nicht in Hexadezimalform eingegeben werden und es kann sich auch +um einen beliebigen Ausdruck handeln. +

Sie können ein Format wählen, wie der Speicherinhalt dargestellt +werden soll, indem Sie die entsprechenden Optionen im Rechte-Maus-Menü +wählen. +

Die zuletzt verwendeten Adressen werden zwischengespeichert und können +über die Popup-Liste ausgewählt werden. Bitte beachten Sie, dass +zusammen mit der Adresse auch das Darstellungsformat gespeichert wird. +

Wenn Sie keinen Speicherinhalt ansehen wollen, empfehlen wir, dass Sie +die Adresse löschen, damit kein Speicherinhalt angezeigt wird - dadurch +arbeitet KDbg etwas schneller. + + diff --git a/doc/de/pgmoutput.html b/doc/de/pgmoutput.html new file mode 100644 index 0000000..65cf563 --- /dev/null +++ b/doc/de/pgmoutput.html @@ -0,0 +1,52 @@ + + + + + + + KDbg - Benutzerhandbuch - Programmausgabe + + +Inhalt +

+Das Programmausgabefenster

+Das Programmausgabefenster wird mit Ansicht|Ausgabe geöffnet. +Das Ausgabefenster zeichnet den Text auf, den das Programm auf stdout +und stderr ausgibt. +

Das Ausgabefenster lässt keine Eingabe zu und unterstützt +nur eine äußerst minimale Terminalemulation: Lediglich \n +(Zeilenvorschub, line-feed), \t (horizontaler Tabulator) und +\r (Wagenrücklauf, carriage-return) werden behandelt. +Das reicht im Allgemeinen für Programme mit grafischer Benutzeroberfläche +aus, die nur Debug-Ausgaben schreiben. +

Wenn ein Programm zum ersten Mal in KDbg geladen wird, wird dieses Ausgabefenster +nicht benutzt. Der Grund dafür ist, dass KDbg nicht wissen +kann, ob das Programm eine ausgefeilte Terminalemulation benötigt +oder ob es Eingaben über das Terminal erwartet. Deshalb wird standardmässig +ein Terminalemulator verwendet. Um die Ausgaben in das Ausgabefenster umzuleiten, +gehen sie wie folgt vor: +

    +
  1. +Rufen Sie mittels Datei|Einstellungen die programmspezifischen +Einstellungen auf.
  2. + +
  3. +Schalten Sie auf das Register Ausgabe um.
  4. + +
  5. +Wählen Sie Nur Ausgabe, einfache Terminalemulation und klicken +Sie OK.
  6. + +
  7. +Laden Sie das Programm erneut, indem Sie es aus der Liste unter Datei|Zuletzt +geöffnete Programme wählen.
  8. +
+Sie können den Inhalt des Fensters jederzeit löschen, indem Sie +Löschen aus dem Popup-Menü wählen, das Sie mit der +rechten Maustaste aufrufen können. +

Falls die letzte Zeile des Ausgabefensters sichtbar ist, verschiebt +sich der Fensterinhalt automatisch, sodass die letzte Zeile immer sichtbar +bleibt, wenn neuer Text ankommt. Wenn Sie hingegen den Fensterinhalt verschieben, +sodass die letzte Zeile nicht sichtbar ist, bleibt der sichtbare Teil unverändert. + + diff --git a/doc/de/pgmsettings.html b/doc/de/pgmsettings.html new file mode 100644 index 0000000..b6a163e --- /dev/null +++ b/doc/de/pgmsettings.html @@ -0,0 +1,83 @@ + + + + + + + KDbg - Benutzerhandbuch - Programmspezifische Einstellungen + + +Inhalt +

+Programmspezifische Einstellungen

+In diesem Dialog können programmspezifischen Einstellungen getroffen +werden. Der Dialog wird mittels Datei|Einstellungen aufgerufen. +Die Einstellungen werden nur auf das geladene Programm angewendet und bleiben +über Sitzungen hinweg erhalten. +
Wichtiger Hinweis: Die getroffenen Einstellungen +werden erst wirksam, wenn das Programm das nächste Mal geladen +wird. Das bedeutet, dass Sie nach dem Drücken von OK in diesem Dialog +das Programm erneut laden müssen (mittels Datei|Programm)!!
+ + + +

+Debugger

+Hier kann der Debugger gewählt werden, der für dieses Programm +verwendet werden soll. +

+Aufruf von GDB

+ +
Geben Sie den Befehl an, mit dem gdb aufgerufen werden +soll. Wenn Sie das Feld leer lassen, wird die globale +Einstellung übernommen. Wenn Sie cross-compilieren oder remote +debuggen, werden Sie hier einen gdb-Befehl angeben, der für +die Zielplattform geeignet ist. Die Standardeinstellung ist gdb --fullname --nx. +Sie müssen auf jeden Fall auch diese Optionen angeben, andernfalls +funktioniert KDbg nicht.
+ +

+Ausgabe

+Hier geben Sie an, unter welcher Terminalemulation das Programm arbeitet. +

+Keine Ein- und Ausgabe

+ +
Wählen Sie diese Option, falls Ihr Programm keine Eingabe +vom Terminal erwartet und Sie keine Ausgabe sehen wollen, die auf stdout +oder stderr geschrieben wird. Alle drei Standardkanäle (stdin, +stdout +und stderr) werden praktisch nach /dev/null umgeleitet.
+ +

+Nur Ausgabe, einfache Terminalemulation

+ +
Wählen Sie diese Option, falls Ihr Programm keine Eingabe +vom Terminal erwartet (stdin wird nach /dev/null umgeleitet) +und die Ausgabe, die auf stdout und stderr geschrieben +wird, keine besondere Terminalemulation erfordert. Die Ausgabe wird im +Ausgabefenster +angezeigt. +
Wichtig: Die eingebaute Terminalemulation interpretiert nur +den Zeilenvorschub \n (line-feed, ASCII 10) als Zeilenumbruch. +Das Zeichen für den Wagerücklauf \r (carriage-return, +ASCII 13) wird nicht behandelt. Das ist ausreichend für Debug-Ausgaben, +wie sie häufig beim Programmierern grafischer Benutzeroberflächen +verwendet wird.
+ +

+Volle Terminalemulation

+ +
Wählen Sie diese Option, falls Ihr Programm Eingaben über +stdin +liest oder falls die Ausgabe auf stdout oder stderr Terminalemulation +erfordert. Ein Terminalemulator kann in den globalen +Einstellungen angegeben werden.
+ + + diff --git a/doc/de/registers.html b/doc/de/registers.html new file mode 100644 index 0000000..2d99bcb --- /dev/null +++ b/doc/de/registers.html @@ -0,0 +1,37 @@ + + + + + + + KDbg - Benutzerhandbuch - Registerinhalt + + +Inhalt +

+Der Registerinhalt

+Das Fenster zur Anzeige des Registerinhalts wird mittels Ansicht|Register +angezeigt. Jedesmal, wenn das Programm angehalten wird, zeigt Kdbg hier +den Inhalt der CPU-Register an. +

Das Fenster ist in 3 Spalten aufgeteilt: +

    +
  1. +Die Spalte Register zeigt die Namen der Register.
  2. + +
  3. +Die Spalte Wert zeigt den Inhalt der Register in einer mehr oder +weniger rohen Form an. Diese rohe Form wird üblicherweise in Hexadezimaldarstellung +angezeigt, selbst der Inhalt der Fließkommaregister.
  4. + +
  5. +Die Spalte Dekodierter Wert zeigt den Inhalt der Register in dekotierter +Form an. Bei den arithmetischen Registern ist das meist eine vorzeichenbehaftete +Dezimalzahl, bei Fließkommaregistern wird die Fließkommazahl +angezeigt, die Flag-Register werden manchmal die gesetzten Flags in Worten +dargestellt (hängt von der verwendeten Version von gdb ab).
  6. +
+Durch Klicken mit der rechten Maustaste können Sie ein Kontextmenü +aufrufen, über das Sie die Darstellung der Werte in der zweiten Spalte +wählen können. + + diff --git a/doc/de/sourcecode.html b/doc/de/sourcecode.html new file mode 100644 index 0000000..56b462f --- /dev/null +++ b/doc/de/sourcecode.html @@ -0,0 +1,30 @@ + + + + + + + KDbg - Benutzerhandbuch - Quellcode + + +Inhalt +

+Das Quellcode-Fenster

+Das Quellcode-Fenster ist das Hauptfenster und ist immer sichtbar. +

Das Quellcode-Fenster zeigt den Quellcode von Programmen an. Am linken +Rand jeder Zeile befindet sich ein "aktiver Bereich". Dort wird ein mit +einem Pfeil angezeigt, an welcher Stelle das Programm gerade ausgeführt +wird. Weiters wird hier angezeigt, an welchen Stellen Haltepunkte gesetzt +sind. +

Neue Haltepunkte können gesetzt werden, indem Sie mit der linken +Maustaste in den aktiven Bereich klicken. Mit der mittleren Maustaste können +Sie vorhandene Haltepunkte aktivieren und deaktivieren. +

Das kleine Pluszeichen '+' zwischen dem "aktiven Bereich" und der Quellcodezeile +zeigt den Assembler-Code der Quellcodezeile an, wenn Sie darauf klicken. +Dabei wird das Zeichen zu einem Minus '-', das den Assemblercode wieder +verbirgt, wenn Sie darauf klicken. +

Meistens werden Quellcode-Dateien automatisch geöffnet. Sie können +Dateien manuell öffnen, indem Sie Datei|Quellcode öffnen +wählen oder Quellcode öffnen aus dem Rechte-Maus-Menü. + + diff --git a/doc/de/stack.html b/doc/de/stack.html new file mode 100644 index 0000000..ae6e576 --- /dev/null +++ b/doc/de/stack.html @@ -0,0 +1,25 @@ + + + + + + + KDbg - Benutzerhandbuch - Stack + + +Inhalt +

+Das Stack-Fenster

+Das Stack-Fenster wird mittels Ansicht|Stack angezeigt. Hierin wird +der Call-Stack (Backtrace, Stack-Frames) angezeigt, d.h. die Funktionen, +die das Programm im Augenblick betreten und noch nicht verlassen hat. +

Das innerste Frame (in dem sich das Programm gerade befindet) befindet +sich an erster Stelle. +

Sie können in ein anderes Stack-Frame umschalten, indem Sie einfach +auf die entsprechende Zeile klicken. Das Quellcode-Fenster +zeigt die Stelle an, in der der Aufruf in das nächst-innere Frame +stattfand; die Anzeige der lokalen Variablen +und die Ausdrücke werden umgeschaltet, +sodass die lokalen Variablen des gewählten Frames angezeigt werden. + + diff --git a/doc/de/threads.html b/doc/de/threads.html new file mode 100644 index 0000000..924eea4 --- /dev/null +++ b/doc/de/threads.html @@ -0,0 +1,44 @@ + + + + + + + KDbg - Benutzerhandbuch - Threads + + +Inhalt +

+Die Programm-Threads

+Das Fenster mit der Liste der Programm-Threas wird mittels Ansicht|Threads +aufgerufen. Dieses Fenster listet die aktiven Threads des Programms auf. +

Wichtig: Das Debuggen von Programm-Threads muss von der +verwendeten gdb-Version unterstützt werden - es handelt sich +hierbei nicht um ein Feature von KDbg. Für Linux-Systeme (i386) funktioniert +gdb5 +am besten. +

Der Inhalt des Fensters wird jedesmal erneuert, wenn das Programm vom +Debugger angehalten wird. (Das heisst, dass nicht der aktuelle Zustand +des Programms angezeigt wird, während es läuft.) +

Die erste Spalte zeigt die Thread-ID an, die zweite Spalte zeigt die +Stelle, an der der Thread gerade abgearbeitet wird. +

Die Markierung am Zeilenanfang benennt den aktiven Thread: +

+Indem Sie auf einen Thread klicken, wechseln Sie den aktiven Thread und +die genannten Fenster werden entsprechend auf den aktuellen Stand gebracht. +Ausserdem schaltet das Quellcode-Fenster +zu der Programmstelle um, an der der aktive Thread angehalten wurde. + + diff --git a/doc/de/tips.html b/doc/de/tips.html new file mode 100644 index 0000000..f27e5a3 --- /dev/null +++ b/doc/de/tips.html @@ -0,0 +1,45 @@ + + + + + + + KDbg - Benutzerhandbuch - Tipps + + +Inhalt +

+Tipps und Tricks

+ + + + + diff --git a/doc/de/watches.html b/doc/de/watches.html new file mode 100644 index 0000000..8de3d4b --- /dev/null +++ b/doc/de/watches.html @@ -0,0 +1,27 @@ + + + + + + + KDbg - Benutzerhandbuch - Ausdrücke + + +Inhalt +

+Ausdrücke (Watches)

+Das Watches-Fenster wird mittels Ansicht|Ausdrücke angezeigt. +Dieses zeigt beliebige Ausdrücke an (diese bezeichnet man auch als +Watches). +

Ein neuer Ausdruck wird hinzugefügt, indem dieser im Eingabefeld +eingegeben wird und dann auf Neu geklickt wird. Um einen Ausdruck +zu entfernen, klicken Sie diesen an (an der Wurzel des entsprechenden Baums) +und klicken dann auf Entf. +

Sie können auch eine Variable oder einen Struktur-Member aus dem +Lokale-Variablen-Fenster herüberkopieren, +indem Sie das dortige Kontextmenü zuhilfe nehmen. +

Die eingegeben Ausdrücke werden zwischen Sitzungen gespeichert. +Wir empfehlen, Ausdrücke zu entfernen, die nicht mehr benötigt, +weil das die Arbeitsgeschwindigkeit von KDbg steigert. + + diff --git a/doc/en/argspwdenv.html b/doc/en/argspwdenv.html new file mode 100644 index 0000000..22482f0 --- /dev/null +++ b/doc/en/argspwdenv.html @@ -0,0 +1,42 @@ + + + + + + KDbg - User's Manual - Arguments, Environment + + +

Contents

+

+Specifying program arguments, working directory, environment variables

+

Choose Execution|Arguments to open a dialog where you can set program +arguments, the working directory for your program, and environment variables.

+

Tab Arguments

+

In the edit box enter the arguments that shall be passed on to your +program. Insert file name lets you browse for a file; +the file name will be inserted in the edit box (at the cursor position).

+

Next time the program is started, the new arguments will be used.

+

Tab Working Directory

+

In the edit box you can specify the working directory for your program. +Browse lets you browse for a directory. +Your program will use the new directory only when it is run the next time.

+

The working directory also applies to gdb itself! The directory that +you specify will be passed to gdb immediately, i.e. gdb will work with +the new setting as soon as you press OK. This can influence whether +source code files are found.

+

Tab Environment

+

In the Environment tab you can set environment variables that the program +sees in addition to those that it inherits. +In the edit box type in an expression of the form VARIABLE=value +to set the environment variable VARIABLE to the value value, +and click Modify. To remove a variable, select it from the list +below and click Delete. To change the value, edit the value in the +edit field and click Modify. If you change the name of the variable +and click Modify, you add a new variable! The new environment variables +will be used by your program the next time it is run.

+

Tab xsldbg Settings

+

This tab is only available when a XSLT script is +debugged. Here you can specify various flags that influence the +XSL translation and XSLDBG.

+ + diff --git a/doc/en/breakptlist.html b/doc/en/breakptlist.html new file mode 100644 index 0000000..fb1c18e --- /dev/null +++ b/doc/en/breakptlist.html @@ -0,0 +1,93 @@ + + + + + + KDbg - User's Manual - Breakpoint list + + +

Contents

+

+The Breakpoint List

+

The breakpoint list displays all breakpoints and watchpoints that are set +and allows you to manipulate them. It can be displayed using View|Breakpoints.

+

+The list of breakpoints

+

For each breakpoint the following is shown:

+ +

The icon in front of the entry indicates whether the breakpoint is enabled +(a red dot) or disabled (a bright red dot), whether the breakpoint is temporary +(a tiny clock is overlaid), whether the breakpoint is conditional (a +tiny question mark is overlaid), or whether the breakpoint is orphaned +(a 'x' is overlaid).

+

Watchpoints are indicated by an eye glas icon in front of the line.

+

+Orphaned breakpoints

+

Orphaned breakpoints are breakpoints that gdb cannot implant +immediately. Orphaned breakpoints occur if you try to set a breakpoint in a file +that is not part of the executable. In particular, this is the case if the file +belongs to a shared library or dynamically loaded module: When the executable +is loaded, gdb does not yet know about dynamic modules and, hence, cannot set +breakpoints there. However, KDbg does not forget about requests to set +breakpoints in dynamic modules: It tries to set orphaned breakpoints each time +that the program stops. When the breakpoint can be set successfully, it turns +into a normal breakpoint.

+

But there is an important consequence: Orphaned breakpoints are not effective, +and the program will not stop there. The remedy is to set a breakpoint +in the executable at the earliest possible point after which it is known that +the dynamic module is loaded. For shared libraries this is usually in main() +and for dynamically loaded modules it is after the call to dlopen() +(or equivalent). When the program stops at this breakpoint the orphaned +breakpoints from the dynamic module are set and become effective.

+

+Manipulating breakpoints

+

It is important to note that breakpoints and watchpoints +cannot be manipulated while the program is running. If the program has +already been started, it must stop first - either by hitting a breakpoint +that is already set or forcefully by choosing Execution|Break. Note +that this will not terminate the program, it just interrupts it. You can +now manipulate the breakpoints; then choose Execution|Continue to +let the program continue.

+

To set a breakpoint on a specific source line, it is easiest to do this +in the source code window. If you don't know the exact file and line number +of a function, you can set the breakpoint by typing the function name in +the edit box above the list and click Add Breakpoint.

+

You can disable and enable breakpoints by selecting them in the list +and clicking Disable or Enable. Or you simply click on the +breakpoint in the list using the middle mouse button - just like you enable +and disable breakpoints in the source window.

+

You can set a condition on a breakpoint (so that the program is only +stopped if the condition is true) or set an ignore count (so that the program +is not stopped the next n times that the breakpoint is hit). To do that, +press the Conditional button and enter the condition and/or ignore +count.

+

+Manipulating watchpoints

+

Watchpoints are a like breakpoints, except that they interrupt the program +when the value of a memory location changes. As with breakpoints, watchpoints +cannot be manipulated while the program is running. See above +for more information.

+

To set a watchpoint, type an expression in the edit box above the list, +then click Add Watchpoint. The program will stop when the value +of the expression changes. Note that watchpoints that involve local variables +can only be set when the program is stopped in a breakpoint (or has been +interrupted by Execution|Break).

+

To remove the watchpoint, select it from the list and click Remove. +If the expression involves a local variable, the watchpoint will be removed +automatically when the program leaves the current frame.

+

You can set a condition and an ignore count on the watchpoint just like +on breakpoints by selecting it and clicking Conditional.

+ + diff --git a/doc/en/globaloptions.html b/doc/en/globaloptions.html new file mode 100644 index 0000000..52faaab --- /dev/null +++ b/doc/en/globaloptions.html @@ -0,0 +1,78 @@ + + + + + + KDbg - User's Manual - Global Options + + +

Contents

+

+Global Options Dialog

+

To specify some global options, choose Settings|Global Options. You +can set the following:

+ + +

+How to invoke gdb

+ +
If you want to use a different version of gdb, you can specify +it under +How to invoke GDB. The default command is gdb --fullname +--nx. Be sure to also specify these options if you change the gdb +executable. If you leave them away, KDbg will not work. If you messed up +the entry, you can clear it to revert to the default setting.
+ +

+How to invoke a terminal emulator

+ +
If you want to use a different terminal program to show the +output of the program, specify it under Terminal for program output. +The default setting is xterm -name kdbgio -title %T -e sh -c %C. +In this entry, +%T will be replaced by a title string, %C +will be replaced by a Bourne shell script that loops infinitely so that +the terminal window doesn't close. (No, it doesn't use CPU, it calls sleep +3600 in a loop :) An alternative for this setting could be konsole +--name kdbgio --caption %T -e sh -c %C.
+ +

+Pop into foreground

+ +
You can specify whether the KDbg window shall move itself into +the foreground as soon as the program being debugged stops (at a breakpoint +or due to a signal). The KDbg window is not activated, however (at least +under KWM, the KDE window manager). Some users may feel that this behavior +is intrusive, so this option is off by default.
+ +
If this option is on, KDbg will also retreat itself into the +background when the program is continued by any command, but it does so +only after a timeout that can be specified. This avoids that the debugger +window flashes back and forth each time you click any of the Step +commands.
+ +

+File filters

+ +
You can specify wildcards for source files and header files, +which are used in the file dialog of the File|Open Source +command.
+ + + diff --git a/doc/en/howdoi.html b/doc/en/howdoi.html new file mode 100644 index 0000000..6191144 --- /dev/null +++ b/doc/en/howdoi.html @@ -0,0 +1,76 @@ + + + + + + KDbg - User's Manual - How Do I...? + + +

Contents

+

+How Do I...?

+ +

+... set breakpoints?

+

There's more than one way to set a breakpoint:

+ +

If you can't set breakpoints, maybe the program is currently running. You +can't set breakpoints while the program is running. Stop it first using +Execution|Break. +If you still can't set breakpoints, make sure that you have compiled and +linked your program with debugging information enabled.

+

+... display the value of a global variable or an arbitrary expression?

+

Use the Watch window.

+

+... set watchpoints?

+

Watchpoints are manipulated in the breakpoint +list.

+

+... use a core dump?

+

First load the executable using File|Executable, then specify the +core dump using File|Core dump.

+

+... debug a program that's caught in an endless loop?

+

Start the program and let it run until it is in the endless loop. Then +switch to KDbg and choose Execution|Break. You've just caught the +nasty program in flagranti!

+

+... achieve that the program passes over a breakpoint a number of times +before it stops?

+

In the breakpoint list select the breakpoint; +then click Conditional and specify the number of times to skip the +breakpoint in the Ignore count field.

+

+... set environment variables for the executable?

+

Select Execution|Arguments and specify the environment variables +in the program arguments dialog.

+

+... set a working directory for the executable?

+

Select Execution|Arguments and specify the working directory in +the program arguments dialog.

+

+... get rid of this terminal window?

+

Select Settings|This Program and switch to the Output tab. +Select Only output, simple terminal emulation and click OK. +Now restart the program (choose it from the list under File|Recent Executables). +The program output goes now to the built-in output +window and stdin is redirected to /dev/null.

+

You must do this for every new program that you debug.

+

Important: You should not do this if your program expects +input from the terminal (usually stdin) or if its output requires nifty +terminal emulation (more than carriage-return and line-feed). The built-in +output window does not support input and terminal emulation.

+ + diff --git a/doc/en/index.html b/doc/en/index.html new file mode 100644 index 0000000..454cd08 --- /dev/null +++ b/doc/en/index.html @@ -0,0 +1,185 @@ + + + + + + KDbg - User's Manual + + + +

+KDbg - User's Manual

+ +

+Contents

+ + + +
+

+Introduction

+

KDbg is a front-end for gdb, the GNU debugger.

+

This means that KDbg itself is not the debugger. Rather, it communicates +with gdb, a command line debugger, by sending commands to it and +receiving the output, such as variable values. The menu commands and mouse +clicks are translated into gdb commands, and the output of gdb +is translated into (more or less) visible information, such as structured +variable contents.

+

The upshot of all this is that KDbg completely relies on the capabilities +of the underlying command line debugger, gdb. KDbg can do no more +than gdb can. For example, if you have a gdb that does +not supports debugging of threaded programs, KDbg cannot, either (even +though it offers a threads window).

+

+Using KDbg

+

Before you start using KDbg, you may want to review the options in the +Global Options dialog that you invoke +with Settings|Global Options.

+

+Specifying a debugging target

+

To debug a program, choose File|Executable from the menu. If you +have debugged the program earlier, you can choose it from File|Recent +Executables. The program is loaded.

+

If you want to debug a core dump, you must first load the executable +that produced the core dump, then choose +File|Core Dump from the +menu. Now KDbg goes to the point in the program that caused the core dump.

+

You can now set breakpoints, using the Breakpoint menu, the right +mouse button menu, or the breakpoint window.

+

You can also choose program specific settings that apply only to the +currently loaded executable using Settings|This Program, in the +Program Settings dialog.

+

Furthermore, it is possible to debug XSLT scripts.

+

+Running the program

+

Now run the program by selecting Execution|Run. The program now +executes as usual until it either exits, hits a breakpoint or watchpoint, +or receives a signal.

+

You can run the program with arguments, set a working directory, or +set environment variables. To do this, choose Execution|Arguments +and specify your options in the Program Arguments +dialog (before you start the program).

+

You can also attach to a program that is currently running. To do this, +first load the executable file like above. Then choose Execution|Attach. +From the list processes specify the one you want to attach to +and click OK. The running program is +halted (not terminated), and the current point of execution is displayed +in the source window.

+

On some systems the list of processes may not be available. +In this case a simple edit box is available where the process number can be +specified.

+

+The program stopped - now what?

+

When the program stops at a breakpoint, watchpoint, or due to a signal, +the source code window displays the line +where the program stopped. It is very common that the program stops due +to a signal (usually a SIGSEGV, segmentation violation) in a function +that is not part of the program, that you have written. In this case you +investigate the stack window and look for a function +that you have written (start at the top of the list) and click on it. This +will bring you to a location that you can start your search for the real +bug.

+

In the menu Execution you find the commands that you need to +run +the program, step through code, and to interrupt the program (Break) +while it is running. The important commands (Run and all kinds of +Step) are bound to function keys. For efficient debugging it is +strongly recommend that you get used to using them. You can use +Settings|Configure Shortcuts if you want to bind the functions +to different keys.

+

In the menu Breakpoint you find commands to set, clear, disable, +and enable permanent and temporary breakpoints. You can display a list +of breakpoints in the breakpoints window. +You can also set a breakpoint by clicking at the left end of the source +line (using the left mouse button), and you can enable and disable a breakpoint +by clicking it using the middle mouse button.

+

The animation in the toolbar indicates whether the program +is running. It stops when the program stopped in a breakpoint or for +some other reason or when the program exited. This animated button is a shortcut +for Execution|Break.

+

+KDbg's information windows

+

KDbg displays information and accepts commands in number of different windows. +In the menu View you find commands to show and hide these windows. +They are docking windows, which means that you can drag them around and +arrange them in any manner you like.

+ + +

+Tips and such

+

The following topics give some useful hints on using KDbg.

+ + +

+Author

+

KDbg is written by Johannes Sixt +with contributions from these people (in no particular order):

+ +

KDbg homepage is at http://www.kdbg.org/.

+ + diff --git a/doc/en/invocation.html b/doc/en/invocation.html new file mode 100644 index 0000000..2f99dd0 --- /dev/null +++ b/doc/en/invocation.html @@ -0,0 +1,34 @@ + + + + + + KDbg - Invocation + + +

Contents

+

Invoking KDbg from the command line

+

+Usage: kdbg [TQt-options] [KDE-options] [options] [program] [core] 
+
+Generic options:
+  --help                    Show help about options
+  --help-qt                 Show TQt specific options
+  --help-kde                Show KDE specific options
+  --help-all                Show all options
+  --author                  Show author information
+  -v, --version             Show version information
+  --license                 Show license information
+  --                        End of options
+
+Options:
+  -t <file>                 transcript of conversation with the debugger
+  -r <device>               remote debugging via <device>
+  -l <language>             specify language: C, XSLT []
+  -p <pid>                  specify PID of process to debug
+
+Arguments:
+  program                   path of executable to debug
+  core                      a core file to use
+

+ diff --git a/doc/en/localvars.html b/doc/en/localvars.html new file mode 100644 index 0000000..1461f70 --- /dev/null +++ b/doc/en/localvars.html @@ -0,0 +1,28 @@ + + + + + + KDbg - User's Manual - Local Variables + + +

Contents

+

+The Local Variables Window

+

The local variables window is opened using View|Locals. The local +variables window displays the contents of the local variables at the currently +selected stack frame.

+

The set of local variables that are displayed is determined by the stack +frame that is selected in the stack window.

+

Variable values that changed between stops of the program are displayed +in red color.

+

The values of most variables can be changed. For this purpose, press F2 +while the input focus is in the window or choose Edit value from the +context menu. Then edit the value and hit Enter. Note that you cannot modify +the strings that char* values point to in this way, just the pointer +value.

+

Using the context menu you can move +the active variable or structure member to the watched +expressions window.

+ + diff --git a/doc/en/memory.html b/doc/en/memory.html new file mode 100644 index 0000000..75693f9 --- /dev/null +++ b/doc/en/memory.html @@ -0,0 +1,26 @@ + + + + + + KDbg - User's Manual - Memory Dump + + +

Contents

+

+The Memory Dump Window

+

The memory dump window is displayed using View|Memory. It displays +the contents of the program's memory at arbitrary adresses.

+

To display memory contents, enter an address in the edit field. The +address need not be given in hexadecimal form - it can be an expression.

+

You can specifiy a format how the memory contents shall be displayed +by chooseing the appropriate options from the popup menu that you invoke +by clicking the right mouse button.

+

A number of address expressions are remembered. You can recall such +an expression from the drop-down list. Please note that the address expression +is remembered together with the format.

+

If you don't need to investigate memory contents, it is recommended +that you clear the expression so that no memory dump is displayed - this +speeds up the debugging process.

+ + diff --git a/doc/en/pgmoutput.html b/doc/en/pgmoutput.html new file mode 100644 index 0000000..3e18902 --- /dev/null +++ b/doc/en/pgmoutput.html @@ -0,0 +1,46 @@ + + + + + + KDbg - User's Manual - Program Output + + +

Contents

+

+The Program Output Window

+

The program output window is displayed using View|Output. The output +window captures text that is written to stdout and stderr by the program +being debugged.

+

The output window does not allow to type input for the program and it +features only minimal terminal emulation: \n (line-feed), +\t (horizontal tab), and \r (carriage-return) +are treated. These capabilities are usually sufficient to debug GUI programs +which only write debugging output to stdout and stderr.

+

When a program is debugged with KDbg for the first time, the program +output window is not used. The reason for this is that KDbg cannot +know whether the program requires sophisticated terminal emulation or if +it expects input through a terminal. So, a terminal emulator program is +used by default. In order to redirect the output to the output window, +you must do the following:

+
    +
  1. +Open the Settings dialog by selecting Settings|This Program.
  2. + +
  3. +Switch to the Output tab.
  4. + +
  5. +Choose Only output, simple terminal emulation and click OK.
  6. + +
  7. +Reload the program by selecting it from the list in File|Recent Executables.
  8. +
+

You can clear the contents of the output window by selecting Clear +from the popup menu that appears when you click the right mouse button.

+

If the last line of the output is visible, the window always scrolls +automatically so that the last line remains visible when new output arrives. +If, however, you manually scroll up so that the last line is not visible, +the visible portion of text will not change.

+ + diff --git a/doc/en/pgmsettings.html b/doc/en/pgmsettings.html new file mode 100644 index 0000000..64225fb --- /dev/null +++ b/doc/en/pgmsettings.html @@ -0,0 +1,81 @@ + + + + + + KDbg - User's Manual - Program Settings + + +

Contents

+

+The Program Settings Dialog

+

In this dialog, program specific settings can be selected. It is invoked +by Settings|This Program. The settings apply only to the currently loaded +executable and will be saved across sessions.

+
Important note: The chosen settings will only +apply the next time the executable is loaded into KDbg. This means that +after pressing +OK in this dialog, you must reload the executable +using File|Recent Executables!!
+ + + +

+Debugger

+

In this section, the debugger to be used for the program can be chosen.

+

+How to invoke GDB

+ +
Enter the command to invoke gdb. Leave this field empty to +use the default gdb command as specified in the global +options. When you are cross-compiling and remote-debugging, you will +probably want to use a different gdb suitable for the target platform. +The default command is gdb --fullname --nx. Be sure to specify +at least --fullname if you change the gdb command. +If you remove this command switch, KDbg will not work. +
+ +

+Output

+

In this section, the terminal emulation under which the program will run +can be selected.

+

+No input and output

+ +
Check this option if your program does not receive input from +the terminal and you do not want to see the output that the program writes +to stdout and stderr (if any). All three standard channels +(stdin, stdout, and stderr) are effectively +redirected to /dev/null.
+ +

+Only output, simple terminal emulation

+ +
Check this option if your program does not receive input from +the terminal (stdin will be redirected to /dev/null), +and the output that it writes to stdout and stderr does +not require sophisticated terminal emulation. The output will be shown +in the Output window. +
Important: The integrated terminal emulator will only interpret +the line-feed character \n (ASCII 10) to break lines. It will +not +handle the carriage-return character \r (ASCII 13). This is sufficient +for displaying plain debugging output that is often used by developers +of GUI programs.
+ +

+Full terminal emulation

+ +
Check this option if your program reads input from stdin +or if the output to stdout or stderr requires terminal +emulation. A terminal emulator will be invoked as specified in the global +options.
+ + + diff --git a/doc/en/registers.html b/doc/en/registers.html new file mode 100644 index 0000000..fc9fb5b --- /dev/null +++ b/doc/en/registers.html @@ -0,0 +1,35 @@ + + + + + + KDbg - User's Manual - Register Dump + + +

Contents

+

+The Register Dump Window

+

Whenever the program stops, KDbg displays the contents of the CPU registers +in the register dump window. To display this window, choose View|Registers.

+

The registers are grouped by the kind of register. The window contains 3 columns:

+
    +
  1. +The column Register displays the register name.
  2. + +
  3. +The column Value displays the contents of the registers in a more +or less raw form. The raw form is usually displayed as hexadecimal numbers, +even the contents of floating point registers.
  4. + +
  5. +The column Decoded value displays the contents of the registers +in a decoded form. For arithmetic registers this is generally a signed +decimal value, floating point registers are displayed as floating point +numbers, the flag registers are sometimes decoded into named flags.
  6. +
+

By clicking the right mouse button a context menu is popped up which lets +you select how the value in the third column is displayed. +You can change the type to use for all registers of a group at once if you +choose the format for the group header.

+ + diff --git a/doc/en/sourcecode.html b/doc/en/sourcecode.html new file mode 100644 index 0000000..9d1bb7f --- /dev/null +++ b/doc/en/sourcecode.html @@ -0,0 +1,28 @@ + + + + + + KDbg - User's Manual - Source Code + + +

Contents

+

+The Source Code Window

+

The source code window is the main window and is always visible.

+

The source code window displays program source code. At the left of +each source line is an "active area". It displays a pointer to indicate +which source line the program currently executes, and it indicates on which +source lines breakpoints have been set.

+

New breakpoints can be set by clicking into the active area with the +left mouse button. An existing breakpoint can be enabled and disabled by +clicking with the middle mouse button.

+

The tiny plus '+' between the "active area" and the source line can +be clicked on. If you do so, the source line's assembler code will be displayed. +The plus turns into a minus '-', which, if clicked, will hide the disassembled +code.

+

Mostly, source code windows are opened automatically. To open a new +source file manually, click the right mouse button and choose Open Source +or choose File|Open Source.

+ + diff --git a/doc/en/stack.html b/doc/en/stack.html new file mode 100644 index 0000000..0db570b --- /dev/null +++ b/doc/en/stack.html @@ -0,0 +1,23 @@ + + + + + + KDbg - User's Manual - Stack + + +

Contents

+

+The Stack Window

+

The stack window is displayed using View|Stack. The stack window +lists the stack frames, i.e. the functions that the program has entered, +but not yet left.

+

The innermost frame (where the program currently executes) is shown +at the top.

+

To switch to a different stack frame, simply click on that stack frame. +The source window displays the source line +where the function invocation took place and the local +variables window and the watch window change +to reflect the local variables of the selected stack frame.

+ + diff --git a/doc/en/threads.html b/doc/en/threads.html new file mode 100644 index 0000000..3f0d7fb --- /dev/null +++ b/doc/en/threads.html @@ -0,0 +1,42 @@ + + + + + + KDbg - User's Manual - Threads + + +

Contents

+

+The Threads Window

+

The threads window is displayed using View|Threads. The threads +window lists the active threads of the program.

+

Note: Debugging threaded programs must be supported by +the version of gdb that is used - it is not a feature of KDbg. For Linux +systems this works best with gdb5 and later. However, at the time of this writing gdb +still poorly supports threads on NPTL- (New Posix Threads Library) enabled +systems (glibc 2.3.x and kernel 2.6.x).

+

The contents of the threads window are updated every time the program +is stopped by the debugger. (That is, the window does not reflect +the state while the program is running.)

+

The first column shows the thread ID, the second column identifies the +location where the thread currently executes.

+

The marker in front of the line tells which thread currently is active:

+ +

By clicking a listed thread, the active thread is switched, and the corresponding +windows are updated. In particular, the source +window displays the location where the active thread is currently halted.

+ + diff --git a/doc/en/tips.html b/doc/en/tips.html new file mode 100644 index 0000000..6a0292a --- /dev/null +++ b/doc/en/tips.html @@ -0,0 +1,47 @@ + + + + + + KDbg - User's Manual - Tips and Tricks + + +

Contents

+

+Tips and Tricks

+ + + + + diff --git a/doc/en/types.html b/doc/en/types.html new file mode 100644 index 0000000..2538efe --- /dev/null +++ b/doc/en/types.html @@ -0,0 +1,183 @@ + + + + + + KDbg - User's Manual - Type Tables + + +

Contents

+

+KDbg's Type Table

+

KDbg can display a short description of structured types, so +that it is not necessary to expand the variable in the local +variables window or watched expressions window. +The information which member variable is displayed is stored in type +tables. There is generally one type table per shared library.

+ +

KDbg's default type tables are located under $prefix/share/apps/kdbg/types. +User defined type tables can be placed in ${TDEHOME}/share/apps/kdbg/types, where +${TDEHOME} is ~/.kde if it is not a defined environment variable. +The file names end with .kdbgtt. Example: The type table for libqt.so +is named qt.kdbgtt. +User defined type tables override the type tables provided by the system.

+

A type table file obeys the regular KDE configuration file syntax. The +file has the following groups:

+ +

In order to determine which type tables apply to the program being debugged +KDbg lists the shared libraries it is linked to. Then it matches the names +against the ShlibRE entries of all type tables. Those that match +are used. If a type appears in several type tables, it is unspecified which +one will be used.

+

KDbg's type recognition only works for libraries that are linked dynamically +to the program being debugged.

+

+The [Type Table] group

+

This group contains the following entries:

+ + +

In the case of regular types the names of types should follow the output of the +whatis gdb command less any const, spaces, or trailing +&. +If the type contains a a comma in its name, it must be escaped with a backslash. +But note that the comma should not be escaped in the type's group (which is described +in the next section). +

+

In the case of template types the name can be arbitrary because the type's group +will mention the template name and a type parameter list.

+ +

+The type's group

+

There is one group for each type that is named exactly as the type. At +the moment C++ template classes are not supported. Each group contains +the following entries:

+ +

Currently the number of expressions per type is limited to +5. This can easily be changed if it's too restrictive, but I recommend +not to go to that limit at all - it will slow down the debugging process.

+

KDbg recognizes a special extension that is used to display TQt 2.x's and TQt 3.x's +unicode strings: If an Exprx is prepended with /TQString::Data, +it is assumed that the result of the expression is a pointer to a TQString::Data. +The value displayed is the unicode string that this instance of TQString::Data +represents (which can be TQString::null if it is TQt's well-defined +null string or (null) if the unicode member is the null +pointer). See qt2.kdbgtt for examples.

+

Tip: It is not necessary to define derived types if they ought to be +treated the same as the base class - KDbg can deduce derived types and +uses the type specification of the (leftmost) base class. You can use the +Alias +entry to quickly specify that a type should be treated like a non-leftmost +base class for a multiple-inheritance class.

+

+An example

+

The example shows how TQString and TQRect are defined +in qt3.kdbgtt. Furthermore, the template type TQValueVector +is defined. This example applies to TQt 3.x, which is located in shared library +whose name ends in libtqt-mt.so.3.

+
[Type Table]
+Types1=TQString,TQRect
+Types2=TQValueVector
+LibDisplayName=libqt 3.x
+ShlibRE=libtqt-mt\.so\.3$
+EnableBuiltin=TQString::Data,TQCharIsShort
+
+[TQString]
+Display={ % }
+Expr1=/TQString::Data (%s).d
+
+[TQValueVector]
+Template=TQValueVector<*>
+Display={ size=% shared=% capacity=% }
+Expr1=($tmp=(%s).sh)->finish-$tmp->start
+Expr2=(%s).sh->count
+Expr3=($tmp=(%s).sh)->end-$tmp->start
+
+[TQRect]
+Display={ tl=(%,%) br=(%,%) }
+Expr1=(%s).x1
+Expr2=(%s).y1
+Expr3=(%s).x2
+Expr4=(%s).y2
+

This example shows these features:

+ + + diff --git a/doc/en/watches.html b/doc/en/watches.html new file mode 100644 index 0000000..395cc61 --- /dev/null +++ b/doc/en/watches.html @@ -0,0 +1,28 @@ + + + + + + KDbg - User's Manual - Watched Expressions + + +

Contents

+

+The Watched Expressions Window

+

The watched expressions window is opened using View|Watched Expressions. +It displays arbitrary expressions.

+

To add an expression, type it into the edit field and press Enter or +click Add. To remove an expression, click on it (choose the root +of the expression) and click Del.

+

You can also move a variable or structure member from the local +variables window to this window using the context menu in the local +variables window.

+

The values of most expressions can be changed. For this purpose, press F2 +while the input focus is in the window. Then edit the value and hit Enter. +Note that you cannot modify the strings that char* values point +to in this way, just the pointer value.

+

Watched expressions are stored across debugging sessions. It is recommended +that you remove expressions that your don't need any longer because that +speeds up the debugging process.

+ + diff --git a/doc/en/xslt.html b/doc/en/xslt.html new file mode 100644 index 0000000..fdc5ec3 --- /dev/null +++ b/doc/en/xslt.html @@ -0,0 +1,24 @@ + + + + + + KDbg - User's Manual - Debugging XSLT scripts + + +

Contents

+

Debugging XSLT scripts

+

KDbg allows to debug XSLT (XML stylesheet translation) scripts using +xsldbg, which must be available +on your system.

+

Specifying the script and an XML file to transform

+

XSLT mode is automatically entered if a "program" is loaded +that has a file name that ends in .xsl. In addition, the +command line option -l XSL can be +specified to explicitly choose this mode.

+

To debug an XSLT script it is necessary to specify an XML data file +that the script can transform. This is done in the +Program Arguments dialog, where the XML +file is specified in the Program Arguments edit box.

+ + diff --git a/doc/man/kdbg.1 b/doc/man/kdbg.1 new file mode 100644 index 0000000..588ef94 --- /dev/null +++ b/doc/man/kdbg.1 @@ -0,0 +1,92 @@ +.\" Hey, EMACS: -*- nroff -*- +.\" First parameter, NAME, should be all caps +.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection +.\" other parameters are allowed: see man(7), man(1) +.TH KDBG 1 "March 25, 2005" +.\" Please adjust this date whenever revising the manpage. +.\" +.\" Some roff macros, for reference: +.\" .nh disable hyphenation +.\" .hy enable hyphenation +.\" .ad l left justify +.\" .ad b justify to both left and right margins +.\" .nf disable filling +.\" .fi enable filling +.\" .br insert line break +.\" .sp insert n+1 empty lines +.\" for manpage-specific macros, see man(7) +.SH NAME +kdbg \- a graphical debugger interface +.SH SYNOPSIS +.B kdbg +[ \fIgeneric-options\fP ] +[ \fB\-t\fP \fIfile\fP ] [ \fB\-r\fP \fIdevice\fP ] +[ \fB\-l\fP \fIlanguage\fP ] [ \fB\-p\fP \fIpid\fP ] +[ \fIprogram\fP ] [ \fIcore\fP ] +.SH DESCRIPTION +\fBKDbg\fP is a graphical user interface to \fBgdb\fP, the GNU debugger. It +provides an intuitive interface for setting breakpoints, inspecting +variables, stepping through code and much more. KDbg requires TDE but +you can of course debug any program. +.PP +KDbg can also debug XSLT (XML stylesheet translation) scripts by +interfacing with \fBxsldbg\fP. Debian users must install the \fIkxsldbg\fP +package to make use of this feature. +.PP +You can pass KDbg the path of the executable to debug (\fIprogram\fP) or +a core dump to debug (\fIcore\fP). +.PP +Features of KDbg include: +.PP +.RS +Inspection of variable values in a tree structure. +.PP +Direct member: For certain compound data types the most important +member values are displayed next to the variable name, so that it is +not necessary to expand the subtree of that variable in order to see +the member value. KDbg can also display Qt's QString values, which +are Unicode strings. +.PP +Debugger at your finger tips: The basic debugger functions (step, +next, run, finish, until, set/clear/enable/disable breakpoint) are +bound to function keys F5 through F10. Quick and easy. +.PP +View source code, search text, set program arguments and environment +variables, display arbitrary expressions. +.PP +Debugging of core dumps, attaching to running processes is possible. +.PP +Conditional breakpoints. +.RE +.SH OPTIONS +Below are the kdbg-specific options. +For a full summary of options, run \fIkdbg \-\-help\fP. +.TP +\fB\-t\fP \fIfile\fP +Write a transcript of the conversation with the debugger to the given +file. +.TP +\fB\-r\fP \fIdevice\fP +Use remote debugging via the given device. +.TP +\fB\-l\fP \fIlanguage\fP +Specify the language of the program/script to debug. +This must be either \fIC\fP (for a C/C++ program) or +\fIXSL\fP (for an XSLT script). +If this option is not passed then KDbg will try to deduce the language +from the given filename. +.TP +\fB\-p\fP \fIpid\fP +Attach to the process with the given process ID. +.SH SEE ALSO +.BR gdb (1), +.BR xsldbg (1). +.PP +Full user documentation is available through the TDE Help Centre. +Alternatively the HTML documentation can be viewed directly from +\fI/opt/trinity/share/doc/tde/HTML//kdbg/\fP. +.SH AUTHOR +KDbg was written by Johannes Sixt . +.br +This manual page was prepared by Ben Burton +for the Debian GNU/Linux system (but may be used by others). diff --git a/doc/ru/argspwdenv.html b/doc/ru/argspwdenv.html new file mode 100644 index 0000000..9108a91 --- /dev/null +++ b/doc/ru/argspwdenv.html @@ -0,0 +1,43 @@ + + + + + + KDbg - Руководство Пользователя - Аргументы, Окружение + + +Содержание +

Указание аргументов программы, рабочего каталога, переменные окружения

+Выберите пункт меню Исполнение|Аргументы для вызова диалогового окна, в +котором вы сможете установить аргументы отлаживаемой программы, ее рабочий +каталог и переменные окружения. +

+Аргументы программ

+В самой верхней строке ввода укажите аргументы командной строки, которые должны +быть переданы программе. Эти аргументы будут использованы при следующием +запуске программы. +

+Рабочий каталог

+Ниже расположена строка ввода, в которой вы можете указать рабочий каталог +программы. Программа будет работать в указанном каталоге при следующем запуске. +

Рабочий каталог также действует и для gdb! Указанный вами каталог будет +немедленно передан gdb и вступит в силу как только вы нажмете OK. Это +может повлиять на поиск файлов исходных текстов. +

+Переменные окружения

+В секции переменных окружения введите выражение в виде VARIABLE=value +для установки переменной окружения VARIABLE в значение value +и кликните на кнопку Изменить. Для удаления переменной, выберите ее в +списке и кликните на кнопку Удалить. Для изменения значения переменной, +выберите ее из списка, отредактируйте ее значение в поле редактирования и +кликните по кнопке Изменить. Если вы измените имя переменной и кликните +по кнопке Изменить, то вы добавите новую переменную! Новые переменные +окружения будут использованы вашей программой при следующем запуске. +

Если в Linux вы используете библиотеку glibc2, то вам необходимо установить +переменную окружения LD_BIND_NOW. Очень важно, чтобы вы установили +значение этой переменной в 1 для всех сессий отладки. Если она не +будет установлена, то gdb не сможет осуществлять пошаговую отладку (в и из) +системных функций, импортируемых из разделяемых библиотек libc и +остальных. + + diff --git a/doc/ru/breakptlist.html b/doc/ru/breakptlist.html new file mode 100644 index 0000000..b3007b3 --- /dev/null +++ b/doc/ru/breakptlist.html @@ -0,0 +1,68 @@ + + + + + + KDbg - Руководство Пользователя - Список точек останова + + +Содержание +

Список точек останова

+Список точек останова отображает все установленные точки останова и просмотра и +позволяет манипулировать ими. Он может быть вызван посредством пункта меню +Вид|Точки останова. +

Перечень точек останова

+Для каждой точки останова отображается следующее: +
    +
  • местонахождение точки останова,
  • + +
  • счетчик остановок на этой точке,
  • + +
  • счетчик пропусков точки останова, если указан,
  • + +
  • условие останова, если указно.
  • +
+Иконка напротив записи указаывает состояние точки останова: включена - красная +точка, выключена - светло-красная точка, временная точка останова - маленькие +часы или условная точка останова - маленький знак вопроса. +

Точки просмотра обозначаются иконкой лупы напротив соответствующей записи. +

Управление точками останова

+Необходимо отметить, что точками останова и просмотра +невозможно управлять во время работы программы. Если программа уже запущена, +необходимо, чтобы она остановилась либо попав в точку останова, либо +принудительно посредством вызова пункта меню Исполнение|Прервать. +Это не завершит исполнение программы, а всего лишь остановит ее. Теперь вы +можете управлять точками останва, после чего выберите пункт +Исполнение|Продолжить для продолжения исполнения программы. +

Для установки точки останова на определенную строку исходного текста самым +простым способом является установка ее в окне исходных текстов. Если вы не +знаете имени файла и номера строки, где находится интересующая вас функция, вы +просто можете ввести ее имя в строке ввода над списком и кликнуть на кнопку +Добавить Точку Останова. +

Вы можете включать и выключать точки останова, выбрав их в списке, а затем +кликнув на кнопки Включить или Выключить. Или просто кликните +средней кнопкой мыши по нужному элементу списка - вы будете включать и +выключать их так же, как и в окне исходных текстов. +

Вы можете установить условие срабатывания точки останова или установить +счетчик пропусков этой точки, показывающий количество проходов, при которых не +будет произведен останов. Для этого кликните на кнопку Условия и введите +условие и/или счетчик пропусков. +

Управление точками просмотра

+Точки просмотра похожи на точки останова, за исключением того, что прерывание +происходит только при изменении значения содержимого памяти. Также как и точки +останова, точками просмотра нельзя управлять во время исполнения программы. +Подробнее см. выше. +

Для установки точки просмотра, введите выражение в строку ввода над списком +и кликните на кнопку Добавить Точку Просмотра. Программа остановится при +изменении значения выражения. Необходимо отметить, что точки просмотра, +использующие локальные переменные, могут быть установлены только когда +программа прервана в точке останова (или принудительно посредством вызова +пункта меню Исполнение|Прервать). +

Для удаления точки просмотра, выберите ее из списка и кликните на кнопку +Удалить. Если выражение использует локальные переменные, то точка +просмотра будет удалена автоматически при выходе программы из данной области +стека (функции). +

Вы также можете установить для точек просмотра условия и счетчик пропусков, +выбрав его из списка и кликнув на кнопку Условия. + + diff --git a/doc/ru/globaloptions.html b/doc/ru/globaloptions.html new file mode 100644 index 0000000..c82a73d --- /dev/null +++ b/doc/ru/globaloptions.html @@ -0,0 +1,72 @@ + + + + + + KDbg - Руководство пользователя - Глобальные Переменные + + +Солдержание +

+Далоговое окно Глобальных Переменных

+Для установки некоторых глобальных переменных можно использовать +Файл|Глобальные Переменные. Вы можете установить: +
    +
  • +команду, с помощью которой вызывается gdb,
  • + +
  • +команду, которая открывает терминал для вывода программы,
  • + +
  • +должен ли KDbg переходить в обыкновенный режим после остановки программы и +через какой промежуток времени он опять перейдет в фоновый режим,
  • + +
  • +размер табуляции.
  • +
+ +

+Как вызывать gdb

+ +
Если вы используете различные версии gdb, нужно указать +их в Как вызывать gdb. По умолчанию используется +форма gdb --fullname +--nx. Проверьте, указаны ли данные опции, +если вы изменили исполняемый модуль gdb. Если вы пропустите их, KDbg не +будет работать. Если вы испортили запись, ее можно очистить, переведя +в значения по умолчанию.
+ +

+Как вызвать эмулятор терминала

+ +
Если вы хотите испотльзовать различные терминальные программы +для показа вывода программы, укажите их в +Терминалы для вывода программ. Значение по умолчанию – +xterm -name kdbgio -title %T -e sh -c %C. +В данной записи, +%T заменяется титульной строкой, %C +заменяется скриптом командного интерпретатора Борна, который будет циклически +вызываться, пока не произойдет закрытия терминального окна. +(Скрипт использует в цикле sleep +3600). Альтернави\ой данных установок может служить +konsole --name kdbgio --caption %T -e sh -c %C.
+ +

+Переход в обычный режим

+ +
Вы можете указать KDbg окну перевестись в обычный режим, +когда отлаживаемая программа завершится (в точке останова или по сигналу). +Иначе окно KDbg не активируется (по крайней мере в KWM &150; оконном менеджере +KDE). Некоторым пользователям такое поведение может показатся навязчивым, +поэтому по умолчанию данная опция отключена. +
+ +
Если опция включена, KDbg переключится в фоновый режим, если +программа будет продолжена, но только по прошествии заданного временного +промежутка. Это сделано для того, чтобы окно отладчика не переключалось +все время, когда используется пошаговое исполнение программы. +
+ + + diff --git a/doc/ru/howdoi.html b/doc/ru/howdoi.html new file mode 100644 index 0000000..1549702 --- /dev/null +++ b/doc/ru/howdoi.html @@ -0,0 +1,78 @@ + + + + + + KDbg - Руководство пользователя - Как я могу...? + + +Содержание +

+Как я могу...?

+ +

+... установить точки останова?

+Существует несколько способов: +
    +
  • Нажатием левой клавиши мыши в окне исходного текста в "активной области", +находящейся слева от строки исходного текста.
  • + +
  • Выбрать строку в окне исходного текста и выбрать опцию +меню Точки останова.
  • + +
  • Вы можете воспользоватся списком точек останова.
  • +
+Если вы не можете установить точки останова, возможно программа работает +в данный момент. Когда программа работает, установка точек останова невозможна. +Остановите программу с помощью Выполнение|Прервать. Если +вы по-прежнему не можете установить точку останова, проверьте, скомпилирована +и собрана ли ваша программа с поддержкой информации для отладки. +

... установить значение глобальной переменной или какого-либо выражения?

+Используйте окно Просмотра. +

+... установить точку просмотра?

+Точки просмотра устанавливаются в списке +точек останова. +

+... использовать дамп памяти?

+Сначала необходимо загрузить исполняемый модуль, используя меню +Файл|Исполняемый модуль, затем указать соответствующий дамп памяти, +используя Файл|Дамп Памяти. +

+... отлаживать программу, содержащую бесконечный цикл?

+Запустите программу и подождите, пока она войдет в бесконечный цикл. +Переключитесь в KDbg и выберите Выполнение|Прервать. +Далее можно использовать отладочные средства. +

+... сделать так, чтобы программа определенное количество раз игнорировала +точку останова во время прохода до того, как начнет прерываться?

списке точек останова выберите точку +останова; нажмите Условная и укажите количество раз для пропуска +точки останова в поле Число пропусков. +

+... установить переменную среды для исполнемого модуля?

+Выберите Выполнение|Аргументы и укажите переменные среды в +диалоге аргументов программы. +

+... установить рабочий каталог для исполняемого модуля?

+Выберите Выполнение|Аргументы и укажите рабочий каталог в +диалоге ургументов программы. +

+... избавиться от терминального окна?

+Выберите Файл|Настройки и перейдите на меню +Вывод. +Выберите Только вывод, простая эмуляция терминала и нажмите +OK. +Теперь перезапустите программу (выберите ее из списка +Файл|Последний исполняемый модуль). Вывод программы теперь перенаправлен +в созданное окно вывода, а в качестве +стандартного потока ввода используется /dev/null. +

Вы должны произвести данную операцию для каждой новой отлаживаемой +программы. +

Важно:Вы не должны делать этого, если программа +читает данные со стандартного потока ввода (обычно терминала) или +ее вывод требует более интеллектуальной эмуляции терминала (то есть +не только возврата каретки и прогона строки). Окно вывода не +поддерживает ввод и эмуляцию терминала. + + diff --git a/doc/ru/index.html b/doc/ru/index.html new file mode 100644 index 0000000..08e0d88 --- /dev/null +++ b/doc/ru/index.html @@ -0,0 +1,177 @@ + + + + + + KDbg - Руководство Пользователя + + + +

KDbg - Руководство пользователя

+ +

Содержание

+ + + +
+

+Введение

+KDbg является графическим интерфейсом к gdb, отладчиком проекта GNU. +

Это означает, что KDbg сам по себе не является отладчиком. Скорее, он +общается с gdb, отладчиком, использующим командную строку, посылая ему +команды и получая их результат, например, значения переменных. Пункты меню и +указания мышью преобразуются в последовательность команд gdb, а +результат преобразуется к более-менее визуальному представлению, такому как +структурное содержимое переменных. +

Обобщение выше сказанного - KDbg целиком зависит от возможностей +используемого отладчика gdb. KDbg не может делать больше, чем делает +gdb. Например, если имеющаяся у вас версия gdb не +поддерживает отладку многопоточных программ, то и KDbg не поможет вам в этом +(несмотря на то, что он выводит окно потоков). + +

+Использование KDbg

+Перед началом использования KDbg вы наверное захотите просмотреть опции в +диалоге Глобальные Опции, который можно +вызвать из пункта меню Файл|Глобальные Опции. +

Указание отлаживаемой программы

+Для отладки программы выберите пункт меню Файл|Исполняемые модули. Если +вы ранее отлаживали эту программу, вы можете выбрать ее из пункта +Файл|Последние Исполняемые Модули. Программа загрузится. +

Если вы хотите произвести отладку по дампу памяти, то сначала вы должны +загрузить программу, породившую этот дамп, а потом загрузить сам дамп, выбрав +пункт меню Файл|Дамп Памяти. Теперь KDbg перейдет в ту точку программы, +которая вызвала создание дампа памяти. +

Теперь вы можете устанавливать точки останова, ипользуя меню +Breakpoint, меню, вызваемое правой кнопкой мышы, или +окно точек останова. +

Также вы можете установить настройки только для отлаживаемой в данный момент +программы в диалоге Настройки Программы, +вызываемом пунктом меню Файл|Настройки. + +

Исполнение программы

+Теперь запустите программу, выбрав пункт меню Исполнение|Запуск. Теперь +программа будет исполняться обычным образом до тех пор, пока она либо не +окончится, либо не попадет в точку останова или точку просмотра, либо не +получит сигнал. +

Вы можете запустить программу с аргументами, установить рабочий каталог, а +также переменные окружения для данной программы. Для этого выберите пункт меню +Исполнение|Аргументы и укажите ваши параметры в диалоге +Аргументы Программы (перед запуском программы). +

Вы также можете подключиться к уже работающей программе. Для этого загрузите +исполняемый модуль, как описано выше. Затем выберите пункт меню +Исполнение|Подсоединиться. Укажите идентификатор процесса и кликните на +OK. Работающая программа будет остановлена (но не прервана), а в окне +исходных текстов будет указана текущая точка останова. + +

Программа остановлена - что теперь?

+Когда программа останавливается в точке останова, просмотра или при получении +сигнала, в окне исходных текстов указывается +текущая строка остановки программы. Часто встречается ситуация, когда программа +останавливается, получая сигнал (обычно SIGSEGV), находясь в функции, +которую вы вызываете из своей программы, но сами не разрабатывали. В этом +случае просмотрите окно стека и найдите функцию, +которую писали вы (начиная с вершины списка) и кликните на нее. Это укажет вам +место, с которого вы сможете начать поиск ошибки в вашей программе. +

В меню Исполнение вы найдете команды, которые вам понадобятся для +запуска программы, пошаговой отладке, прерывания исполнения программы +(Прерывание). Важные команды, такие как Запуск и все виды +Шагов, привязаны к функциональным клавишам, которыми рекомендуется +пользоваться для повышения эффективности отладки. +
Эти функции не настраиваются, но может вы захотите внести +свой вклад и разработать эту функциональность? +

В меню Точки останова вы найдете команды для установки, снятия, +включени и выключения временных и постоянных точек останова. Вы можете вывести +список точек останова в окно точек останова. +Вы также может установить точку останова, кликнув левой кнопкой мыши в левое +поле строки исходного текста. Для включения и выключения точки останова +кликните средней кнопкой мыши на точку останова. +

Шестеренка на панели инструментов показывает, что gdb работает, в этом +случае она вертится. Когда она вертится быстро, KDbg не будет принимать +команды исполнения, а если она вращается медленно, то KDbg считывает значения +переменных. +

+Информационные окна KDbg

+KDbg выводит информацию и принимает команды в различных окнах. В меню +Вид вы обнаружите команды для вызова и закрытия этих окон. Все эти окна +вы можете размещать так, как вам удобно. + + + +

+Советы и пр.

+Следующие разделы содержат полезные сведения об использовании KDbg. + + +

+Известные проблемы

+gdb 4.16 имеет проблемы с обработкой классов С++ с виртуальным базовым классом. +(Такие классы обычно встречаются в программах, использующих CORBA.) Он +прерывается по ошибке сегментации, а KDbg сообщает о том, что gdb неожиданно +завершился. К сожалению, с этим ничего нельзя сделать. Вам придется +перезапустить gdb, выбрав пункт меню Файл|Исполняемый модуль, который +перезапустит сессию отладки. +

Распознавание типов в KDbg работает только для библиотек, динамически +линкуемых с отлаживаемой программой. + +

+Автор

+KDbg разработан Johannes Sixt +с помощью многих остальных. +
Домашняя страница KDbg расположена по адресу +http://www.kdbg.org/. + + diff --git a/doc/ru/localvars.html b/doc/ru/localvars.html new file mode 100644 index 0000000..31b9a8b --- /dev/null +++ b/doc/ru/localvars.html @@ -0,0 +1,19 @@ + + + + + + KDbg - Руководство Пользователя - Локальные Переменные + + +Содержание +

Окно Локальных Переменных

+Окно локальных переменных вызывается выбором пункта меню Вид|Локальные. +Данное окно отображает содержимое локальных переменных, определенных +указанной текущей областью стека (stack frame). +

Отображаемый набор локальных переменных определяется областью стека (stack +frame), выбранной в окне стека. +

Значения переменных, изменивщихся между остановами программы, отображаются +красным цветом. + + diff --git a/doc/ru/memory.html b/doc/ru/memory.html new file mode 100644 index 0000000..e8ba057 --- /dev/null +++ b/doc/ru/memory.html @@ -0,0 +1,26 @@ + + + + + + KDbg - Руководство пользователя - Образ памяти + + +Содержание +

Окно образа памяти

+Чтобы отобразить окно образа памяти нужно выбрать Вид|Память. +Оно выводит содержимое памяти программы по любым адресам. +

Для просмотра содержимого памяти, введите нужный адрес в поле редактирования. +Адрес не обязательно должен задаваться в шестнадцатеричной форме и может +задаваться выражением. +

Вы можете определить формат отображения содержимого памяти с помощью +выбора соответствующих опций из выпадающего меню, которое вызывается +нажатием правой клавиши мыши. +

Адресные выражения запоминаются и впоследствии могут быть +вызваны из выпадающего списка. Обратите внимание, что адресные выражения +запоминаются вместе с их форматом. +

Если вы не собираетесь исследовать содержимое памяти, рекомендуется +очистить выражение таким образом, чтобы содержимое памяти не выводилось +– это увеличит скорость процесса отладки. + + diff --git a/doc/ru/pgmoutput.html b/doc/ru/pgmoutput.html new file mode 100644 index 0000000..2a17c69 --- /dev/null +++ b/doc/ru/pgmoutput.html @@ -0,0 +1,43 @@ + + + + + + KDbg - Руководство Пользователя - Вывод Программы + + +Содержание +

Окно Вывода Программы

+Окно вывода программы можно вызвать, выбрав пункт меню Вид|Вывод. В это +окно выводятся стандартные потоки вывода и диагностики отлаживаемой программы. +

Оно не позволяет вводить какие-либо данные в программу и реализует лишь +минимальную эмуляцию терминала: \n (перевод строки) преобразуется в +комбинацию начало строки-перевод строки, а \r (начало строки) +игнорируется. Этих возможностей обычно предостаточно для отладки GUI программ, +которые выводят отладочные сообщение в стандартные потоки вывода или +диагностики. +

Когда программа отлаживается первый раз, окно вывода программы не +неиспользуется. Ведь KDbg не знает, достаточно ли программе столь +ограниченных возможностей или же она ожидает ввода с терминала. Поэтому по +умолчанию используется штатный эмулятор терминала. Для перенаправления вывода +программы в окно вывода необходимо проделать следующие шаги: +

    +
  1. +Вызвать диалоговое окно Настройки посредством +пункта меню Файл|Настройки.
  2. + +
  3. Выбрать закладку Вывод.
  4. + +
  5. Выбрать Только вывод, простой эмулятор терминал и кликнуть на +кнопку OK.
  6. + +
  7. Перезагрузить программу из списка Файл|Последние Исполняемые Модули.
  8. +
+Для очистки содержимого окна выберите пункт Очистить в всплывающем меню, +вызываемом нажатием правой кнопки мыши в этом окне. +

Если последняя строка окна заполнена текстом, то окно прокручивается +автоматически таким образом, что последняя строка всегда остается видимой при +поступлении новых сообщений. Если вы прокрутите окно, то отображаемая позиция +не изменится. + + diff --git a/doc/ru/pgmsettings.html b/doc/ru/pgmsettings.html new file mode 100644 index 0000000..ca14b4b --- /dev/null +++ b/doc/ru/pgmsettings.html @@ -0,0 +1,73 @@ + + + + + + KDbg - Руководство Пользователя - Настройки Программ + + +Содержание +

Диалог Настройки Программ

+В этом диалоге можно указать настройки конкретной программы. Для его вызова +выберите пункт меню Файл|Настройки. Данные настройки будут применены +только к текущей отлаживаемой программе и будут сохранены между сессиями ее +отладки. +
Важное замечание: Настройки будут применены только +при следующей загрузке исполняемого модуля в KDbg. Это означает, что после +нажатия на OK вы должны перезагрузить исполняемый модуль с помощью +пункта меню Файл|Исполняемые модули!!
+ + + +

+Отладчик

+В этом разделе вы можете указать отладчик, которым будете отлаживать программу. +

Как вызвать GDB

+ +
Введите команду для вызова gdb. Оставьте это поле пустым для вызова +gdb по умолчанию, указанного в +глобальных опциях. Если вы занимаетесь +кросс-компиляцией и удаленной отладкой, то вы наверное захотите использовать +другой gdb, более подходящий для конкретной платформы. По умолчанию вызывается +gdb --fullname --nx. Не забудьте указать данные опции при изменении +используемого отладчика. Если вы их не укажите, KDbg не будет работать. +
+ +

+Вывод

+В этом разделе вы можете указать степень эмуляции терминала, в которой будет +работать программа. +

Нет ввода и вывод

+ +
Отметьте эту опцию, если ваша программа не получает входных данных +с терминал и вы не хотите видеть то, что она выводит в стандартные потоки +вывода и диагностики. Все стандартные потоки (stdin, stdout и +stderr) перенаправляются в /dev/null.
+ +

Только вывод, простая эмуляция терминала

+ +
Отметьте эту опцию, если ваша программа не получает входных данных +с терминала (stdin будет перенаправлен в /dev/null), а вывод +(stdout и stderr) не требует сложной эмуляции терминала. +Вывод будет отображаться в окне выовда. + +
Важно: Встроенный эмулятор терминала интерпретирует только символ +новой строки \n (ASCII 10) в перевод строки. Он не обрабатывает +символ перевода каретки \r (ASCII 13). Этого вполне достаточно для +отображения простых отладочных сообщений, которые обычно используются +разработчиками программ, использующих графический интерфейс.
+ +

Полная эмуляция терминала

+ +
Отметьте эту опцию, если ваша программа получает данные из +stdin, или вывод в stdout or stderr требует полной +эмуляции терминала. В этом случае будет использован эмулятор терминала, +указанный в глобальных опциях.
+ + diff --git a/doc/ru/registers.html b/doc/ru/registers.html new file mode 100644 index 0000000..eb5c216 --- /dev/null +++ b/doc/ru/registers.html @@ -0,0 +1,31 @@ + + + + + + KDbg - Руководство Пользователя - Содержимое регистров + + +Содержание +

Окно Содержимого Регистров

+Всякий раз, когда происходит останов программы, +KDbg выводит содержимое регистров ЦПУ в соответсвующем окне. Для того, чтобы +отобразить данное окно, выберите Вид|Регистры. +

Окно содержит 3 колонки: +

    +
  1. Колонка Регистр выводит имя регистра.
  2. + +
  3. Колонка Значение выводит содержимое регистров в более или менее +необработанном формате. Необработанный формат обычно выводит шестнадцатеричное +значение, даже для содержимого регистров с плавающей точкой.
  4. + +
  5. Колонка Декодированное значение выводит содержимое регистров +в декодированной форме. Для арифметических регистров это +обычно знаковое десятичное значение, для регистров с плавающей точкой +– число с плавающей точкой, регистры флагов декодируются в имена +флагов.
  6. +
+С помощью правой клавиши мыши можно вызвать меню, которое позволяет +установить формат значений во второй колонке. + + diff --git a/doc/ru/sourcecode.html b/doc/ru/sourcecode.html new file mode 100644 index 0000000..fba5f3b --- /dev/null +++ b/doc/ru/sourcecode.html @@ -0,0 +1,31 @@ + + + + + + KDbg - Руководство пользователя - Исходный Текст + + +Содержание +

Окно Исходного Текста

+Данное окно является главным и всегда отображается. +

Окно исходного текста содержит исходный текст программы. Слева от +каждой строки текста находится "активная область". Она содержит +указатель на строку исходного текста, которая выполняется в текущий момент +времени, а также указывает те строки исходного текста, которые содержат +точки останова. +

Новые точки останова устанавливаются нажатием левой клавиши мыши в +"активной области". Существующая точка останова может быть активирована +или дезактивирована с помощью средней клавиши мыши. +

Может быть нажат знак плюса '+' между "активной областью" и строкой +исходного текста. Это приведет к выводу ассемблерного кода для данной +строки. Чтобы скрыть ассемблерный код, необходимо +нажать клавишу '-'. +

Обычно окна исходного текста открываются автоматически. Чтобы +открыть файл с исходным текстом вручную, нужно нажать правую +кнопку мыши и выбрать Открыть исходный текст или +выбрать Файл|Открыть исходный текст. +

Для переключения между несколькими файлами с исходными текстами, +выберите нужный файл в меню Окно. + + diff --git a/doc/ru/stack.html b/doc/ru/stack.html new file mode 100644 index 0000000..082ba9b --- /dev/null +++ b/doc/ru/stack.html @@ -0,0 +1,23 @@ + + + + + + KDbg - Руководство Пользователя - Стек + + +Содержание +

Окно Стека

+Окно стека вызывается выбором пункта меню Вид|Стек. Окно стека содержит +списки областей стека (stack frames), например, функции, которые были вызваны, +но еще не завершились. +

Самая внутренняя (вложенная) область (место текущего исполнения программы) +находится в самом верху списка. +

Для переключения на другую область стека, просто выберите эту область +мышкой. Окно исходных текстов отображает строки +исходных текстов, которые исполняются программой в текущий момент, а +окно локальных переменных и +окно отслеживаемых выражений изменяются, отображая +локальные переменные выбранной области стека. + + diff --git a/doc/ru/threads.html b/doc/ru/threads.html new file mode 100644 index 0000000..674c309 --- /dev/null +++ b/doc/ru/threads.html @@ -0,0 +1,38 @@ + + + + + + KDbg - Руководство Пользователя - Потоки + + +Содержание +

Окно Потоков

+Окно потоков можно вывести, выбрав пункт меню Вид|Потоки. В окне потоков +отображается список активных потоков программы. +

Замечание: Отладка многопоточных программ должна +поддерживаться используемой версией gdb - это не является функцией KDbg. Для +Linux-систем лучше использовать gdb5. +

Содержимое окна потоков обновляется при каждой остановке программы +отладчиком. (Т.е. в окне не отображается состояние потоков во время +работы программы.) +

Первая колонка отображает идентификатор потока, вторая указывает на текущее +место исполнения данного потока. +

Маркер напротив одной из строк указывает на текущий активный поток: +

+Если кликнуть на другой поток в списке, то он станет активным и соответственно +будет изменено содержимое других окон. В частности, +окно исходных кодов отобразит место, где текущий +поток был остановлен. + + diff --git a/doc/ru/tips.html b/doc/ru/tips.html new file mode 100644 index 0000000..7739496 --- /dev/null +++ b/doc/ru/tips.html @@ -0,0 +1,43 @@ + + + + + + KDbg - Руководство Пользователя - Полезные Советы + + +Содержание +

Полезные Советы

+ +
    +
  • Всегда устанавливайте переменную окружения LD_BIND_NOW=1 в +системах, использующих библиотеку glibc2. + +Установка переменных окружения описана +здесь.
  • + +
  • Вы можете использовать точки останова, как закладки: просто установите +точку останова и выключите ее. Позже вы сможете возвратиться к этой точке, +кликнув на нее два раза в списке точек останова (или просто выбрав ее и кликнув +на кнопку Просмотреть Исходный Код). Т.к. точки останова являются +постоянными (т.е. KDbg запоминает их расположение и восстанавливает в следующей +сессии), то при вызове вашей программы на отладку в следующий раз все точки +останова будут на месте. +
  • + +
  • Вы можете изменять значения переменных программы: в окне просмотра +переменных (внизу справа) введите присвоение var.member=17 и кликните +по кнопке Добавить. Это приведет к немедленному изменению значения +переменной. Теперь вам необходимо удалить это выражение из списка (выбрав +его и кликнув на кнопку Удалить). Это необходимо потому, что просмотр +выражений осуществляется при каждом останове программы и этой переменной будет +присваиваться тоже значение снова и снова!
  • + +
  • Вы можете выводить значение переменных в окно просмотра в разных форматах, +используя модификаторы gdb перед указанием выводимой переменной. Например, +/x var.member выведет значение var.member в шеснадцатеричном +виде.
  • +
+ + + diff --git a/doc/ru/types.html b/doc/ru/types.html new file mode 100644 index 0000000..2d29941 --- /dev/null +++ b/doc/ru/types.html @@ -0,0 +1,126 @@ + + + + + + KDbg - Руководство Пользователя - Таблицы Типов + + +Содержание +

Таблица Типов KDbg

+KDbg может отображать содержимое отдельно взятых членов структурированных типов +данных, таким образом отсутствует необходимость в раскрытии переменных в +окне локальных переменных или в +окне отслеживаемых выражений. Информация о том, +переменная какого члена отображается, хранится в таблицах типов. Обычно +существует одна таблица на разделяемую библиотеку. +

Таблицы типов KDbg расположены в каталоге +$TDEDIR/share/apps/kdbg/types. Имена файло таблиц оканчиваются на +.kdbgtt. Например, таблица типов для libqt.so называется +qt.kdbgtt. +

Файлы таблиц типов соответствуют стандартному синтаксису файлов конфигурации +KDE. Файл содержит следующие группы: +

    +
  • +Группу [Type Table], в которой перечислены типы и информация о том, +как отладчик может определить, слинкована ли программа с этой библиотекой.
  • + +
  • Группу на каждый прописанный тип, в которой содержится информация о том, +как KDbg должен отображать данный тип.
  • +
+Для определения таблиц типов, применимых к отлаживаемой программе, KDbg +запрашивает список разделяемых библиотек, с которыми слинкована программа. +Затем он осуществляет поиск имен этих библиотек в таблицах типов в элементах +ShlibRE. Используются те таблицы, в которых были найдены +соответствующие имена библиотек. Если тип появляется в нескольких таблицах, то +неопределено, какое же из описаний будет выбрано. +

Группа [Type Table]

+Эта группа содержит следующие элементы: +
    +
  • +Types1, Types2, и тд. Эти элементы являются именами типов. +Каждый из них представляет собой разделенный запятыми список имен типов. В +каждом элементе может быть перечислено любое количество типов. (Имена типов +можно разбить на несколько строк, чтобы они строки не получались слишком +длинными.) В этих строках недопустимы символы пробела. Элементы должны +нумероваться последовательно (KDbg прекращает чтение на первом же пропуске), +однако элементы могут быть пусты (т.е. вообще не содержать типов). Иногда +порядок перечисления имен имеет значение (см. пример с Alias ниже). +
  • + +
  • +ShlibRE. KDbg использует этот элемент для определения, использовать +ли данную таблицу к текущей отлаживаемой программе. Для этого KDbg определяет +разделяемые библиотеки, используемые программой. Если хотя бы одна из них +совпадает со значением этого элемента, таблица используется. Используемые +регулярные выражения совпадают с регулярными выражениями TQt (метасимволы +.*?[]^$\ распознаются обычным образом, однако отсутсвует возможность +группировать символы.)
  • + +
  • +LibDisplayName. Этот элемент используется в списках, в которых +доступные таблицы типов перечислены для указания данной таблицы типов.
  • + +
    На данный момент это не используется.
+ +

Группа типа

+На каждый заявленый тип должна быть заведена группа, названная именем типа. +На данный момент шаблоны С++ не поддерживаются. +Каждая группа содержит следующие элементы: +
    +
  • +Display указывает, как KDbg должен отображать значение этого типа. +Строка может содержать от 1 до 5 символов '%'. Они заменяются на +результаты выражений, описанных в элементах Exprx.
  • + +
  • Один или более Expr1, Expr2, и тд. Каждый из них должен +содержать только одну последовательность %s, которая будет +заменена выражением, чье значение необходимо получить. Такие выражения +передаются gdb, а результат заносится на место соответствующего символа +процента в элементе Display.
  • + +
  • +Alias указывает на тип-псевдоним. Если присутствует данная запись, то +с данным типом обходятся также, как с тем, на который он указывает. Этот +тип-псевдоним дожен быть описан перд ссылающимся на него типом в элементах +Typesx группы [Type Table].
  • +
+На данный момент количество выражений для каждого типа ограничено +пятью. Это может быть с легкостью изменено, но я не рекомендую вообще +приближаться к данному рубежу - это только затормозить процесс отладки. +

KDbg распознает специальное расширение, которое используется для вывода +строк TQt 2.0 в unicode: Если перед Exprx стоит +/TQString::Data, подразумевается, что результат операции является +указателем на TQString::Data. Выводимое значение является строкой в +unicode, представленное TQString::Data (которое может быть +TQString::null, если это пустая строка TQt, или (null), если +unicode член структуры является нулевым указателем). Для примера см. +qt2.kdbgtt. + +

Совет: Совсем необязательно описывать наследуемые типы, если они должны +обрабатываться также как и базовый класс - KDbg может определить наследование +и использовать описание типа первого (слева) базового класса. Вы можете +использовать элемент Alias для быстрого указания класса при +множественном наследовании, отличного от первого слева. +

Пример

+Этот пример показывает, как TQString и TQObject описаны в +qt.kdbgtt. Дополнительно определен TQTableView, ссылающийся +на TQObject. Этот пример применим к TQt 1.x, который расположен в +разделяемых библиотеках, имена которых оканчиваются как libqt.so.1. +
[Type Table]
+Types1=TQString
+Types2=TQObject,TQTableView
+LibDisplayName=libqt 1.x
+ShlibRE=libqt\.so\.1$
+[TQString]
+Display={ % }
+Expr1=(%s).shd->data
+[TQObject]
+Display={ name=% #chld=% }
+Expr1=(%s).objname
+Expr2=(%s).childObjects->numNodes
+[TQTableView]
+Alias=TQObject
+Замечание: гораздо безопаснее заключать %s в скобки. + + diff --git a/doc/ru/watches.html b/doc/ru/watches.html new file mode 100644 index 0000000..0953b7c --- /dev/null +++ b/doc/ru/watches.html @@ -0,0 +1,20 @@ + + + + + + KDbg - Руководство Пользователя - Отслеживаемые Выражения + + +Содержание +

Окно Отслеживаемых Выражений

+Окно отслеживаемых выражений вызывается выбором пункта меню +Вид|Отслеживаемые Выражения. Оно отображает произвольные выражения. +

Для добавления выражения, введите его в поле редактирования и нажмите Enter +или кликните на кнопку Добавить. Для удаления выражения, выберите его +(выбирайте корень выражения?) и кликните на кнопку Del. +

Отслеживаемые выражения сохраняются между сессиями отладки. Поэтому +рекомендуется удалять выражения, которыми вы уже не пользуетесь, т.к. это +повысит скорость отладки. + + -- cgit v1.2.1