Freigeben über


Schnellstart: Debuggen mit C++ mithilfe des Visual Studio-Debuggers

Der Visual Studio-Debugger bietet viele leistungsstarke Features, mit denen Sie Ihre Apps debuggen können. Dieses Thema bietet eine schnelle Möglichkeit, einige der grundlegenden Features kennenzulernen.

Erstellen eines neuen Projekts

  1. Öffnen Sie Visual Studio, und erstellen Sie ein Projekt.

    Wenn das Startfenster noch nicht geöffnet ist, wählen Sie "Dateistartfenster > " aus. Wählen Sie im Startfenster Neues Projekt erstellenaus. Geben Sie im Suchfeld "Leeres Projekt" ein, und wählen Sie dann die Projektvorlage "C++ Leer" aus.

    Wenn die Projektvorlage nicht angezeigt wird, öffnen Sie das Visual Studio-Installationsprogramm. Wählen Sie die Desktopentwicklung mit C++-Workload und dann "Ändern" aus.

    Visual Studio erstellt das Projekt.

    Erstellen einer neuen Quelldatei namens MyDbgApp.cpp

  2. Ersetzen Sie in MyDbgApp.cpp den folgenden Code:

    int main()
    {
        return 0;
    }
    

    mit diesem Code (entfernen Sie nicht #include "stdafx.h"):

    #include <list>
    #include <iostream>
    
    using namespace std;
    
    void doWork()
    {
        list <int> c1;
    
        c1.push_back(10);
        c1.push_back(20);
    
        const list <int> c2 = c1;
        const int &i = c2.front();
        const int &j = c2.front();
        cout << "The first element is " << i << endl;
        cout << "The second element is " << j << endl;
    
    }
    
    int main()
    {
        doWork();
    }
    

Haltepunkt festlegen

Ein Haltepunkt ist eine Markierung, die angibt, wo Visual Studio den ausgeführten Code anhalten soll, damit Sie sich die Werte von Variablen oder das Verhalten des Arbeitsspeichers ansehen können oder ob eine Verzweigung des Codes ausgeführt wird. Dies ist das grundlegendste Feature beim Debuggen.

  1. Um den Haltepunkt festzulegen, klicken Sie in der Seitenleiste links vom doWork Funktionsaufruf (oder wählen Sie die Codezeile aus und drücken Sie F9).

    Einen Haltepunkt festlegen

  2. Drücken Sie nun F5 (oder wählen Sie "Debugging starten" > aus).

    Haltepunkt erreicht

    Der Debugger hält an dem Breakpoint an, den Sie festlegen. Die Anweisung, in der der Debugger und die App-Ausführung angehalten wird, wird durch den gelben Pfeil angezeigt. Die Zeile mit dem doWork Funktionsaufruf wurde noch nicht ausgeführt.

    Tipp

    Wenn Sie einen Haltepunkt in einer Schleife oder Rekursion haben oder viele Haltepunkte haben, die Sie häufig durchlaufen, verwenden Sie einen bedingten Haltepunkt , um sicherzustellen, dass Ihr Code NUR angehalten wird, wenn bestimmte Bedingungen erfüllt sind. Ein bedingter Haltepunkt spart Zeit und kann auch das Debuggen von Problemen erleichtern, die schwer zu reproduzieren sind.

    Wenn Sie versuchen, Speicherfehler in C++ zu debuggen, können Sie auch Haltepunkte verwenden, um Adresswerte zu prüfen (suchen Sie nach NULL) und Referenzanzahlen.

Es gibt verschiedene Befehle, die den Debugger anweisen, den Vorgang fortzusetzen. Wir zeigen einen nützlichen Codenavigationsbefehl an, der ab Visual Studio 2017 verfügbar ist.

Beim Aussetzen am Breakpoint zeigen Sie auf die Anweisung c1.push_back(20), bis die grüne Schaltfläche Ausführen bis KlickAusführung bis Klick angezeigt wird, und klicken Sie dann auf Ausführen bis Klick.

Ausführen bis Klick

Die App setzt die Ausführung fort, ruft doWork auf und hält an der Codezeile an, auf der Sie auf die Schaltfläche geklickt haben.

Allgemeine Tastaturbefehle, die zum Schrittweisen Durchlaufen von Code verwendet werden, umfassen F10 und F11. Ausführlichere Anweisungen finden Sie unter "Erster Blick auf den Debugger".

Untersuchen von Variablen in einem Datentipp

  1. Zeigen Sie in der aktuellen Codezeile (zu erkennen an dem gelben Ausführungszeiger) mit der Maus auf das c1-Objekt, um Datentipps anzuzeigen.

    Anzeigen eines Datentipps

    Der aktuelle Wert der Variable c1 wird angezeigt, und Sie können die Eigenschaften untersuchen. Wenn beim Debuggen ein Wert angezeigt wird, den Sie nicht erwarten, haben Sie wahrscheinlich einen Fehler in den vorherigen oder aufrufenden Codezeilen.

  2. Erweitern Sie den Datentipp, um die Eigenschaftswerte des c1-Objekts einzusehen.

  3. Wenn Sie den Datentipp anheften möchten, damit bei der Codeausführung weiterhin der Wert von c1 angezeigt wird, klicken Sie auf das Stecknadelsymbol. (Sie können den angehefteten Datentipp an eine geeignete Stelle verschieben.)

Bearbeiten von Code und Fortsetzen des Debuggens

Wenn Sie eine Änderung identifizieren, die Sie im Code während einer Debugsitzung testen möchten, können Sie dies auch tun.

  1. Klicken Sie auf das zweite Vorkommen von c2.front() und ändern Sie c2.front() in c2.back().

  2. Drücken Sie F10 (oder Debug > Step Over) ein paar Mal, um den Debugger weiterzuführen und den bearbeiteten Code auszuführen.

    Bearbeiten und Fortsetzen

    F10 führt den Debugger jeweils um eine Anweisung weiter, setzt jedoch Funktionsaufrufe fort, anstatt in sie hineinzugehen (der Code, den Sie überspringen, wird weiterhin ausgeführt).

Weitere Informationen zur Verwendung von Bearbeiten und Fortsetzen sowie zu Featurebeschränkungen finden Sie unter Bearbeiten und Fortsetzen.

Nächste Schritte

In diesem Lernprogramm haben Sie gelernt, wie Sie den Debugger starten, Code durchlaufen und Variablen überprüfen. Möglicherweise möchten Sie einen allgemeinen Blick auf Debuggerfeatures sowie Links zu weiteren Informationen werfen.