5.2.20
04/03/20
Last Modified 04/27/15 by Walter Tasin
QTC_Debugging Reload Page

Debugging eines C-Projekts mit QT Creator

Allgemeines

Eine integrierte Entwicklungsumgebung (IDE) wie QT Creator unterstützt den Programmierer auch in der Behebung von Programmfehlern.
Solche Programmfehler, die meist auf fehlerhafter oder unzureichender Umsetzung eines Algorithmus beruhen, werden Bugs (=Käfer, Wanze) genannt.
Um solchen Problemen auf die Schliche zu kommen wird ein Debugger genutzt.

QT Creator verwendet den GNU Debugger (gdb) und bietet dem Entwickler mithilfe der grafischen Umgebung eine bequeme Art die Möglichkeiten des Debuggers zu nutzen. Diese sind u. a.:

  • Durchlaufen des Programms im Einzelschrittmodus (Step Over, Step Into)
  • Durchlaufen des Programms bis zu einem vorher festgelegten Haltepunkt (Breakpoint)
  • Beobachten (und Modifikation) der Variableninhalte
  • Unterbrechen des Programmablaufs
    (Besonders interessant bei Endlosschleifen)

Erstellen des Projekts für den Debugger

Ein C-Projekt unter QT Creator kennt standardmäßig zwei Konfigurationen.

  • Debug
Diese Konfiguration wird für den Entwicklungsprozess verwendet und führt Debuginformationen (z. B. Variablennamen) in die Ausgabedateien (Objektdateien, Bibliotheken, ausführbare Dateien) des Erstellprozesses mit.
Diese sind für den Debugger notwendig um das Programm auf Quellcodeebene durchlaufen und geeignet darstellen zu können.
* Release
Diese Konfiguration aktiviert den Optimierungsmodus beim Erstellen der ausführbaren Datei.
Im resultierenden Programm befinden sich keine Debuginformationen und oft werden auch einige Laufzeitoptimierungen beim Erstellen durchgeführt.
Das daraus resultierende Programm wird als "Release"-Version (Version zur Veröffentlichung) bezeichnet.
Für die weitere Betrachtung des Debuggers wird also angenommen, dass das Projekt in der Debugkonfiguration erstellt wurde.
Beim Anlegen des Projekts ist die Debug-Konfiguration als Standardkonfiguration voreingestellt (s. Punkt 1 im nachfolgenden Screenshot).
qtc_debug1.png

Starten des Programms im Debugger

Zum Starten des aktuelle Projekt im Debugger wählen Sie zuerst

  • das Projekt im Projekt-Explorer aus (kann entfallen, wenn nur ein Projekt im Arbeitsbereich bearbeitet wird)
  • setzen Sie einen Haltepunkt durch Klicken auf eine Code-Zeile (links von der Zeilennummer)
    (s. Punkt 2) und
  • klicken auf den Play-Button mit der Wanze (s. Punkt 3).

Debug-Perspektive

Folgende Fensteraufbau finden Sie in der Debug-Perspektive:
qtc_debug2.png


  • Variablenbetrachter
Er zeigt den aktuellen Inhalt der lokalen Variablen an.

  • Quellcodebetrachter
Dieser Teil zeigt an, wo das Programm angehalten wurde (gelber Pfeil) und ermöglicht das Einsetzen und Entfernen von Haltepunkten.

  • Ausgabefenster
Wie bei normalen Starten wird ein typisches Konsolenfenster geöffnet und die Standardeingabe, -ausgabe und -fehlerausgabe des Projekts umgeleitet.


* (Erweiterte) Werkzeugleiste
Die Werkzeugleiste wird in dieser Perspektive um wesentliche Debug-Befehle erweitert.
qtc_tools.png

(1) Fortsetzen (Abkürzungstaste: F5)
Wiederaufnahme des Programmlaufs bis zum Ende oder bis zum Auftreten eines Haltepunktes.

(2) Debugger anhalten
Beenden die Debugsitzung.

(3) Einzelschritt über (Abkürzungstaste: F10)
Führe die aktuelle Anweisung (gelber Pfeil) aus. Springe zur nächsten Anweisung des aktuell dargestellten Quellcodes.

(4) Einzelschritt herein (Abkürzungstaste: F11)
Führe die aktuelle Anweisung (gelber Pfeil) aus. Sollte die Anweisung einen Funktionsaufruf darstellen dann springe in die Funktion.
Funktioniert nur sicher mit Funktionen des eigenen Projekts.

(5) Einzelschritt heraus (Abkürzungstastenkombination: Umschalt-F11)
Führe die Anweisungen (ab gelben Pfeil) aus bis die Funktion in der die aktuelle Anweisung steht zum Aufrufer springt.
Funktioniert nur sicher mit Funktionen des eigenen Projekts.


Sie können die Befehle auch alternativ über den Menüpunkt Debugger auswählen.
qtc_debug3.png

Einfügen/Entfernen von Haltepunkten

Das Einfügen von Haltepunkten erfolgt entweder durch
klicken links von der entsprechenden Quellcodezeile
oder durch Selektieren der Quellcodezeile und Drücken der Funktionstaste <F9>

Beenden der Debug-Sitzung

Zum Beenden der Debug-Sitzung beenden Sie zuerst die aktive Debugsitzung und schalten zurück auf Editieren .
qtc_debug4.png