Überblick zum Debuggen

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Anwendungen debuggen - Index


RAD Studio enthält integrierte Debugger für jede unterstützte Zielplattform. Die IDE verwendet automatisch für den aktiven Projekttyp den korrekten Debugger. Das Debuggen für geräteübergreifende Anwendungen innerhalb eines Projekts wird unterstützt. Die Benutzeroberfläche der Debugger ist größtenteils identisch.

Mit Hilfe der integrierten Debugger lassen sich sowohl Laufzeitfehler als auch Fehler in der Logik einer RAD Studio-Anwendung finden. Bei der Arbeit mit den Debuggern können Sie den Quelltext schrittweise durchlaufen, Haltepunkte und überwachte Ausdrücke festlegen sowie Programmwerte prüfen und bearbeiten. Wenn Sie eine Anwendung debuggen, unterstützen Sie die Debug-Fenster bei der Verwaltung der Debug-Sitzung und zeigen Informationen über den Status Ihrer Anwendung an.

Mit dem Debug-Inspektor können Sie verschiedene Datentypen, wie z. B. Arrays, Klassen, Konstanten, Funktionen, Zeiger, skalare Variablen und Interfaces, untersuchen. Sie öffnen den Debug-Inspektor mit Start > Untersuchen.

Diese Video-Demo des Debuggers (EN) bietet eine hilfreiche Übersicht.

Fehlersuche im Quelltext schrittweise ausführen

Wenn Sie Ihren Quelltext beim Debuggen schrittweise durchlaufen, führen Sie das Programm Codezeile für Codezeile aus. Sie können bei jedem Schritt den Programmstatus überprüfen, die Programmausgabe anzeigen, Datenwerte des Programms ändern und dann mit der Ausführung der nächsten Codezeile fortfahren. Die nächste Codezeile wird erst dann ausgeführt, wenn Sie den Debugger dazu anweisen.

Das Menü Start enthält die Befehle Einzelne Anweisung und Gesamte Routine. Beide Befehle weisen den Debugger an, die nächste Codezeile auszuführen. Enthält die Zeile jedoch einen Funktionsaufruf, führt der Befehl Einzelne Anweisung die Funktion aus und hält an der ersten Codezeile innerhalb dieser Funktion an. Der Befehl Gesamte Routine führt die Funktion aus und hält an der ersten Zeile nach der Funktion an.

Auswerten/Ändern

Mit der Funktion Auswerten/Ändern können Sie Ausdrücke auswerten und Variablenwerte ändern. Auswerten/Ändern variiert je nach verwendeter Sprache:

  • Bei einem C++-Projekt können im Dialogfeld Auswerten/Ändern nur C++-Ausdrücke eingegeben werden.
  • Bei Delphi-Projekten sind im Dialogfeld Auswerten/Ändern nur Delphi-Ausdrücke zulässig.

Haltepunkte

Haltepunkte unterbrechen die Programmausführung an einem bestimmten Punkt im Programm oder bei Auftreten einer bestimmten Bedingung. Sie können dann mit dem Debugger den Status des Programms untersuchen oder die gesamte Routine oder einzelne Anweisungen ausführen. Der Debugger unterstützt vier Arten von Haltepunkten:

  • Quelltexthaltepunkte unterbrechen die Ausführung an einer bestimmten Position im Quelltext.
  • Adresshaltepunkte unterbrechen die Ausführung an einer bestimmten Speicheradresse.
  • Datenhaltepunkte unterbrechen die Ausführung, wenn sich der Speicher an einer bestimmten Adresse ändert. Datenhaltepunkte werden automatisch deaktiviert, wenn eine Debugger-Sitzung beendet ist, weil sich die Adresse einer Variablen von einer Debugger-Sitzung zur nächsten ändern kann. Um einen Datenhaltepunkt in einer nachfolgenden Debugger-Sitzung wiederzuverwenden, müssen Sie den Datenhaltepunkt nach Beginn der Debugger-Sitzung erneut aktivieren.
  • Modulhaltepunkte unterbrechen die Ausführung, wenn das angegebene Modul geladen wird.

Informationen über das Erstellen, Ändern und Beibehalten von Haltepunkten finden Sie unter Haltepunkte setzen und bearbeiten.

Überwachte Ausdrücke

Überwachte Ausdrücke ermöglichen Ihnen, die Werte von Programmvariablen oder -ausdrücken zu verfolgen, während Sie mit dem Befehl Gesamte Routine oder Einzelne Anweisung den Quelltext durchlaufen. Während das Programm im Debugger läuft, ändert sich der Wert des überwachten Ausdrucks, sobald das Programm die Variablen der überwachten Ausdrücke aktualisiert.

Sie können Ihre überwachten Elemente im Fenster Liste überwachter Ausdrücke überwachen.

Fenster zur Fehlersuche

Die folgenden Debug-Fenster unterstützen Sie bei der Fehlersuche in einem Programm. Die meisten dieser Fenster werden automatisch angezeigt, wenn Sie eine Debug-Sitzung beginnen. Sie können die Fenster aber auch einzeln mithilfe der Optionen des Untermenüs Ansicht > Debug-Fenster anzeigen.

In jedem Fenster stehen ein oder mehrere Kontextmenüs zur Verfügung. Mit der Hilfe-Taste F1 können Sie detaillierte Informationen sowohl zu dem Fenster als auch zu den Kontextmenüs anzeigen.

Debug-Fenster Beschreibung

Liste der Haltepunkte

Zeigt alle aktuell im Quelltext-Editor oder im Fenster CPU gesetzten Haltepunkte an.

Aufruf-Stack

Zeigt die aktuelle Sequenz der Funktionsaufrufe an.

Liste überwachter Ausdrücke

Zeigt den aktuellen Wert überwachter Ausdrücke im Bereich des Ausführungspunkts an.

Lokale Variablen

Zeigt die lokalen Variablen der aktuellen Funktion an. Damit lässt sich überwachen, wie das Programm Variablenwerte während der Programmausführung aktualisiert.

Module

Zeigt Prozesse unter der Kontrolle des Debuggers und die aktuell von jedem Prozess geladenen Module an. Darüber hinaus wird eine hierarchische Darstellung der in der Anwendung benutzten Namespaces, Klassen und Methoden angezeigt.

Thread-Status

Zeigt den Status aller Prozesse und Ausführungs-Threads an, die beim Debuggen in einer Anwendung ausgeführt werden. Dies ist besonders beim Debuggen von Multithread-Anwendungen hilfreich. In Windows Vista enthält die Ansicht Threads-Status die Spalte Wait Chain, die Blockierungen und Deadlocks von Threads aufführt.

Ereignisprotokoll

Zeigt Meldungen zur Prozess-Steuerung, zu Haltepunkten, Ausgabe, Threads und Modulen an.

CPU-Fenster - Index

Zeigt den Low-Level-Status eines Programms an, einschließlich der Assembly-Anweisungen für jede Zeile des Quelltextes und des Inhalts bestimmter Register.

FPU

Zeigt den Inhalt der Gleitkommaeinheit und der SSE-Register des Prozessors an.

Debug-Desktop einstellen

Der Debug-Desktop ist das von der IDE verwendete Layout für das Ausführen einer Anwendung im Debug-Modus (durch Drücken der Taste F9 bei der Standardtastaturbelegung). Es gibt einen Standard-Debug-Desktop, aber Sie können alternativ einen beliebigen gespeicherten Desktop als Debug-Desktop auswählen.

So legen Sie den Debug-Desktop fest:

  1. Wählen Sie einen der folgenden Befehle aus:
  2. Klicken Sie im Dialogfeld Debug-Desktop einstellen auf den Abwärtspfeil, und wählen Sie das gewünschte Layout als Debug-Desktop aus.
  3. Klicken Sie auf OK.

Remote-Debuggen

Mit dem Remote-Debuggen können Sie eine Anwendung debuggen, die sich auf einem Remote-Computer befindet. Ihr Computer muss mit dem Remote-Computer über TCP/IP verbunden sein.

Es stehen nun zwei Lösungen für das Remote-Debugging zur Verfügung:

  • Mit der neuen Remote-Debugging-Lösung wird auch das geräteübergreifende Debuggen durchgeführt.
  • Für die alte Debuggen-Lösung ist die Installation eines Remote-Debuggers auf dem Remote-Computer erforderlich. Nachdem die erforderlichen Anwendungsdateien erstellt und auf den Remote-Computer kopiert wurden, können Sie eine Verbindung zu diesem Computer herstellen und mit dem Debuggen beginnen.
Hinweis: Die alte Debuggen-Lösung ist nicht für geräteübergreifende Anwendungen anwendbar.

Geräteübergreifendes Debuggen

Geräteübergreifendes Debuggen bezieht sich auf die Verwendung einer Zielplattform, die nicht die native 32-Bit-Windows-Plattform ist. Ihre Interaktion mit dem Debugger ist praktisch dieselbe beim geräteübergreifenden Debuggen und beim Windows-Debuggen.

  • Für die OS X- und iOS-Plattformen, müssen Sie auf dem Zielcomputer den Platform Assistant installieren und ausführen und auf dem Entwicklungssystem ein Verbindungsprofil erstellen.
  • Für Android-Anwendungen benötigen Sie weder den Platform Assistant noch ein Verbindungsprofil, aber Sie müssen den USB-Treiber für Ihr Android-Gerät herunterladen, das USB-Debugging aktivieren und RAD Studio ein Android SDK hinzufügen.

Weitere Einzelheiten finden Sie unter Debuggen von geräteübergreifenden Anwendungen.

Siehe auch