|
|
Debugger
Ein Debugger ist ein Programm, das den Programmierer dabei unterstützen soll,
Programmfehler zu finden. Diese Fehler werden als Bug (engl. für Wanze oder
Käfer) bezeichnet. Entsprechend ist der Debugger ein »Entwanzer«.
Ein Debugger lässt das zu untersuchende Programm unter seiner Kontrolle
ablaufen. Sie können das Programm an bestimmten Punkten stoppen lassen und im
Einzelschritt verfolgen. Dabei lassen sich Variableninhalte anzeigen.
Damit das erzeugte Programm dem Debugger etwas zu sagen hat, muss es mit dem
Flag Äußert sich das Problem in einem Programmabsturz, so wird man typischerweise das Programm im Debugger starten und in die Situation des Zusammenbruchs laufen lassen. Sobald das Programm zusammenbricht, fängt es der Debugger auf und meldet, an welcher Stelle der frühe Tod zu vermelden war. Schwieriger ist es schon, wenn das Programm durchaus läuft, aber die Ergebnisse nicht die erwarteten sind. In solchen Fällen setzen Sie vor dem Start des Programms an den Stellen, wo Sie Probleme vermuten jeweils einen Breakpoint. Nach dem Start des Programmes wird dieses normal laufen, bis es einen Breakpoint erreicht. Dort wird das Programm anhalten. Sie können sich die Variablen anzeigen lassen und Schritt für Schritt weitergehen. Moderne Debugger sind sogar in der Lage, einen bereits laufenden Prozess unter ihre Kontrolle zu bekommen. Das ist besonders deswegen interessant, weil es ansonsten gar keine Möglichkeit gäbe, beispielsweise Dämonen zu debuggen. Der Debugger ist bei der Analyse eines core dump hilfreich. Ein core dump entsteht dann, wenn das Programm vom Betriebssystem die Arbeitserlaubnis entzogen bekommen hat, weil es beispielsweise versucht hat, in Speicherbereiche zu greifen, die ihm nicht gehören. Dabei wird der Abzug des Speichers des Prozesses in jenem Moment in eine Datei namens core geschrieben.. Ein Debugger kann mit Hilfe dieser Datei feststellen, an welcher Zeile der Absturz erfolgt ist und welche Funktionen das Programm durchlaufen hat, um an diese Stelle zu kommen. Da der Debugger auch in der Lage ist, die Variableninhalte anzuzeigen, können Sie mit dieser Information recht gut feststellen, was die Ursache war. Für die Debugger gibt es teilweise auch grafische Oberflächen. Vom Prinzip her arbeiten diese natürlich gleich, sind aber teilweise etwas leichtfüßiger zu bedienen.
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|