Grundlagen

Um ein Programm mit dem CXdb untersuchen zu können, muß man es mit der Option ''-cxdb'' sowohl kompilieren als auch linken. Da sich diese Option auch mit allen Optimierungsstufen verträgt und weil die Ausführungszeiten eines Programms sich dadurch nicht erhöhen, empfiehlt es sich, sie grundsätzlich zu benutzen. Insbesondere die Möglichkeit, schon lange laufende Programme mitten im Lauf zu debuggen (s. 3.1.5), lohnt den kleinen Mehraufwand beim Übersetzen. Daß die Auswirkungen der cxdb-Option auf den normalen Programmlauf vernachlässigbar sind, liegt daran, daß die nötigen Informationen nicht in das ausführbare Programm mit eingebunden sind, sondern in einem Unterverzeichnis .CXdb getrennt vorliegen.

Nach dem Übersetzungsschritt ruft man den Debugger mit ''cxdb Programmname'' auf (wobei man bei Verwendung von X11 i.a. ein ''SPMamp;'' anhängt, um den Prozeß im Hintergrund zu starten - schließlich macht er ja sein eigenes Fenster auf). Es erscheinen nun das Command- und das Source-Fenster. Mit dem Kommando ''run [args]'' startet man den Ablauf des Programms. ''args'' bezeichnet dabei irgendwelche Kommandozeilen-Parameter, die man sonst direkt beim Programmaufruf in der Form ''programmname args'' mitgeben würde. 9 Dabei wird auch das Prozeß-Fenster geöffnet, das die Ausgaben des laufenden Programms enthält und in dem auch ggf. erforderliche Programm-Eingaben erfolgen. Das Programm läuft nun normalerweise bis zum Ende durch bzw. bis es auf einen Fehler stößt, der ohne Debugger-Kontrolle zum Absturz des Programms führen würde. Jetzt wird dagegen nur die entsprechende Fehlermeldung im Command-Fenster ausgegeben und das Programm angehalten. Der augenblickliche Stand des Programms wird dabei durch Invertierung der entsprechenden Zeile im Source-Fenster angezeigt. Man kann nun durch Ansehen der Variablen (s.u.) versuchen, der Ursache des Fehlers auf die Spur zu kommen. Um jetzt - oder später - das Programm mit den zuletzt benutzten Parametern erneut aufzurufen, benutzt man das Kommando ''rerun''. Man kann das Programm während des Laufes unterbrechen, indem man Control-c im Command-Fenster (nicht im Process-Fenster) eingibt. Mit ''continue $\&$'' kann man mit der Ausführung des Programms fortfahren, wobei es bei ''SPMamp;'' im Hintergrund weiterarbeitet, so daß man im Command-Fenster Befehle eingeben kann. Insbesondere kann man nun mit ''stop'' den Prozeß wieder anhalten.
Mit ''kill process'' kann man den Prozeß abbrechen, etwa um von vorne zu beginnen, mit ''quit'' den CXdb verlassen. Dabei wird ggf. ein noch laufender Prozeß nach einer Sicherheitsabfrage beendet.

previous    contents     next

Peter Junglas 18.10.1993