Lernprogramm: Debuggen von C#-Code mithilfe von Visual Studio
In diesem Artikel werden die Features des Visual Studio-Debuggers in einer schrittweisen exemplarischen Vorgehensweise vorgestellt. Wenn Sie eine höhere Übersicht über die Debugger-Funktionen wünschen, sehen Sie sich Erster Einblick in den Debuggeran. Wenn Sie Ihre App debuggen, bedeutet das in der Regel, dass Sie Ihre Anwendung mit dem angefügten Debugger ausführen. Wenn Sie diese Aufgabe ausführen, bietet der Debugger viele Möglichkeiten, um zu sehen, was Der Code während der Ausführung ausführt. Sie können Ihren Code schrittweise durchlaufen und die in Variablen gespeicherten Werte betrachten, Sie können Überwachungen auf Variablen festlegen, um zu sehen, wann sich Werte ändern, Sie können den Ausführungspfad Ihres Codes untersuchen, sehen, ob eine Verzweigung von Code ausgeführt wird usw. Wenn Sie bei dieser Übung zum ersten Mal versuchen, Code zu debuggen, möchten Sie vielleicht Debugging für absolute Anfänger lesen, bevor Sie diesen Artikel durchgehen.
Obwohl die Demo-App C# ist, gelten die meisten Features für C++, Visual Basic, F#, Python, JavaScript und andere sprachen, die von Visual Studio unterstützt werden (F# unterstützt "Edit-and-continue" nicht. F# und JavaScript unterstützen das Fenster "Automatisch" nicht). Die Screenshots befinden sich in C#.
In diesem Tutorial werden Sie:
- Starten des Debuggers und Treffen der Breakpoints.
- Lernen Sie Befehle, um Code im Debugger schrittweise durchzugehen.
- Überprüfen von Variablen im Fenster für Datentipps und im Debugger-Fenster
- Überprüfen der Aufrufliste
Voraussetzungen
Sie müssen Visual Studio 2022 und die Workload für die .NET-Desktopentwicklung installiert haben.
Sie müssen Visual Studio 2019 und die Workload Plattformübergreifende .NET Core-Entwicklung installiert haben.
Wenn Sie Visual Studio noch nicht installiert haben, wechseln Sie zur Visual Studio-Downloads Seite, um es kostenlos zu installieren.
Wenn Sie die Workload installieren müssen, aber bereits über Visual Studio verfügen, wechseln Sie zu Tools>Abrufen von Tools und Features..., wodurch das Visual Studio-Installationsprogramm geöffnet wird. Das Visual Studio-Installationsprogramm wird gestartet. Wählen Sie die Workload Plattformübergreifende .NET Core-Entwicklung aus, und klicken Sie dann auf Anpassen.
Wenn Sie Visual Studio bereits verwenden, aber die Workload .NET-Desktopentwicklung nicht installiert ist, wechseln Sie zu Extras>Tools und Features abrufen, um den Visual Studio-Installer zu starten. Wählen Sie anschließend im Visual Studio-Installer die Workload .NET Desktopentwicklung aus, und klicken Sie dann auf Ändern.
Erstellen eines Projekts
Zuerst erstellen Sie ein .NET Core-Konsolenanwendungsprojekt. Der Projekttyp enthält alle benötigten Vorlagendateien, bevor Sie sogar etwas hinzugefügt haben!
Öffnen Sie Visual Studio. Wenn das Startfenster nicht geöffnet ist, wählen Sie Datei>Startfensteraus.
Wählen Sie im Startfenster Neues Projekt erstellenaus.
Geben Sie im Fenster Neues Projekt erstellen im Suchfeld den Begriff Konsole ein. Wählen Sie als Nächstes C#- aus der Liste "Sprache" aus, und wählen Sie dann in der Liste "Plattform" Windows aus.
Nachdem Sie die Sprach- und Plattformfilter angewendet haben, wählen Sie die Vorlage Konsolen-App- für .NET Core aus, und wählen Sie dann Nextaus.
Anmerkung
Wenn die Vorlage Konsolen-App nicht angezeigt wird, können Sie sie aus dem Fenster Erstellen eines neuen Projekts installieren. Wählen Sie in der Meldung Sie finden nicht, wonach Sie suchen? den Link Weitere Tools und Features installieren aus. Wählen Sie dann im Visual Studio Installer die .NET Core plattformübergreifende Entwicklung Workload aus.
Geben Sie anschließend im Fenster Neues Projekt konfigurieren im Feld Projektname den Namen GetStartedDebugging ein. Wählen Sie dann Weiteraus.
Wählen Sie das empfohlene Zielframework (.NET 8.0 oder Long-Term Support) und dann Erstellen aus.
Geben Sie im Fenster Neues Projekt erstellen im Suchfeld den Begriff Konsole ein. Wählen Sie als Nächstes C#- aus der Liste "Sprache" aus, und wählen Sie dann in der Liste "Plattform" Windows aus.
Nachdem Sie die Sprach- und Plattformfilter angewendet haben, wählen Sie die Vorlage Konsolen-App aus, und wählen Sie dann Nextaus.
Anmerkung
Wenn die Vorlage Konsolen-App- nicht angezeigt wird, können Sie sie aus dem Fenster Erstellen eines neuen Projekts installieren. Wählen Sie in der Meldung Sie finden nicht, wonach Sie suchen? den Link Weitere Tools und Features installieren aus. Wählen Sie dann im Visual Studio Installer die .NET-Desktopentwicklung Workload aus.
Geben Sie im Fenster Konfigurieren des neuen ProjektsGetStartedDebugging im Feld Projektname ein. Wählen Sie dann Weiteraus.
Stellen Sie im Fenster Zusätzliche Informationen sicher, dass .NET 8.0- im Dropdownmenü Framework ausgewählt ist, und wählen Sie dann Erstellenaus.
Visual Studio öffnet Ihr neues Projekt.
Erstellen der Anwendung
Ersetzen Sie in Program.csden gesamten Standardcode durch den folgenden Code:
using System;
class ArrayExample
{
static void Main()
{
char[] letters = { 'f', 'r', 'e', 'd', ' ', 's', 'm', 'i', 't', 'h'};
string name = "";
int[] a = new int[10];
for (int i = 0; i < letters.Length; i++)
{
name += letters[i];
a[i] = i + 1;
SendMessage(name, a[i]);
}
Console.ReadKey();
}
static void SendMessage(string name, int msg)
{
Console.WriteLine("Hello, " + name + "! Count to " + msg);
}
}
Starten Sie den Debugger!
Drücken Sie F5 (Debuggen > Debuggen starten), oder wählen Sie auf der Symbolleiste „Debuggen“ die Schaltfläche Debuggen starten aus.
F5 startet die App mit dem Debugger, der an den App-Prozess angefügt ist, aber im Moment haben wir nichts Besonderes getan, um den Code zu untersuchen. Die App lädt einfach, und Sie sehen diese Konsolenausgabe.
Hello, f! Count to 1 Hello, fr! Count to 2 Hello, fre! Count to 3 Hello, fred! Count to 4 Hello, fred ! Count to 5 Hello, fred s! Count to 6 Hello, fred sm! Count to 7 Hello, fred smi! Count to 8 Hello, fred smit! Count to 9 Hello, fred smith! Count to 10
In diesem Lernprogramm werfen Sie einen genaueren Blick auf diese App mithilfe des Debuggers und werfen einen Blick auf die Debuggerfeatures.
Beenden Sie den Debugger, indem Sie die rote Stoppschaltfläche (Umschalttaste + F5) drücken.
Drücken Sie im Konsolenfenster eine Taste, um das Konsolenfenster zu schließen.
Hauptsächlich verwenden wir hier Tastenkombinationen, da es eine schnelle Möglichkeit zum Ausführen von Debuggerbefehlen ist. Entsprechende Befehle, z. B. Symbolleisten- oder Menübefehle, werden ebenfalls angegeben.
Um den Debugger zu starten, wählen Sie F5aus, oder wählen Sie die Schaltfläche Debugziel- auf der Standardsymbolleiste aus, oder wählen Sie in der Menüleiste die Schaltfläche Debuggen starten oder Debuggen>Debuggen starten aus der Menüleiste aus.
F5 startet die App mit dem Debugger, der an den App-Prozess angefügt ist. Da wir nichts Spezielles getan haben, um den Code zu untersuchen, läuft die App bis zum Ende und die Konsolenausgabe erscheint.
Hello, f! Count to 1 Hello, fr! Count to 2 Hello, fre! Count to 3 Hello, fred! Count to 4 Hello, fred ! Count to 5 Hello, fred s! Count to 6 Hello, fred sm! Count to 7 Hello, fred smi! Count to 8 Hello, fred smit! Count to 9 Hello, fred smith! Count to 10
Um den Debugger zu beenden, wählen Sie Shift+F5aus, oder wählen Sie die Schaltfläche Debuggen stoppen auf der Symbolleiste "Debuggen" aus, oder wählen Sie Debuggen>Debuggen stoppen in der Menüleiste aus.
Wählen Sie im Konsolenfenster einen beliebigen Schlüssel aus, um das Konsolenfenster zu schließen.
Festlegen eines Haltepunkts und Starten des Debuggers
Legen Sie in der
for
-Schleife der FunktionMain
einen Breakpoint fest, indem Sie auf den linken Rand der folgenden Codezeile klicken:name += letters[i];
Ein roter Kreis wird an der Stelle angezeigt, an der Sie den Breakpoint festlegen.
Haltepunkte sind ein einfaches und wichtiges Feature zum zuverlässigen Debuggen. Ein Haltepunkt gibt an, 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 ein Codezweig ausgeführt wird.
Drücken Sie F5- oder die Schaltfläche Debuggen starten. Die App wird gestartet, und der Debugger läuft bis zur Codezeile, in der Sie den Haltepunkt festlegen.
Der gelbe Pfeil zeigt die Anweisung, bei der der Debugger angehalten hat, wodurch auch die Ausführung der App an derselben Stelle pausiert (diese Anweisung wurde noch nicht ausgeführt).
Wenn die App noch nicht ausgeführt wird, kann der Debugger durch Drücken der Taste F5 gestartet werden und hält am ersten Breakpoint an. Andernfalls wird durch Drücken der Taste F5 die Ausführung der App bis zum nächsten Haltepunkt fortgesetzt.
Haltepunkte sind ein nützliches Feature, wenn Sie die Codezeile oder den Codeabschnitt kennen, den Sie im Detail untersuchen möchten. Informationen zu den verschiedenen Typen von Haltepunkten, die Sie festlegen können, wie z. B. bedingte Haltepunkte, finden Sie unter Verwenden von Haltepunkten.
Legen Sie in der
for
-Schleife derMain
-Funktion einen Haltepunkt fest, indem Sie auf den linken Rand der folgenden Codezeile klicken.name += letters[i];
An der Stelle, an der Sie den Haltepunkt festlegen, wird ein roter Kreis angezeigt.
Haltepunkte sind ein wesentliches Feature für zuverlässiges Debuggen. Sie können Haltepunkte festlegen, an denen Visual Studio den ausgeführten Code anhalten soll, damit Sie sich die Werte von Variablen oder das Verhalten des Arbeitsspeichers ansehen oder wissen, ob eine Verzweigung von Code ausgeführt wird.
Um mit dem Debuggen zu beginnen, wählen Sie F5aus, oder wählen Sie die Schaltfläche Debugziel- auf der Standardsymbolleiste aus, oder wählen Sie in der Menüleiste die Schaltfläche Debuggen starten aus, oder wählen Sie Debuggen>Debuggen starten aus. Die App startet, und der Debugger läuft bis zur Codezeile, bei der Sie den Breakpoint festgelegt haben.
Der gelbe Pfeil zeigt auf die Anweisung, bei der der Debugger angehalten wurde. Die App-Ausführung wird an demselben Punkt angehalten, wobei die Anweisung noch nicht ausgeführt wird.
Wenn die App nicht ausgeführt wird, können Sie mit F5 den Debugger starten. Dieser führt die App aus, bis der erste Breakpoint erreicht ist. Wenn die App an einem Haltepunkt angehalten wird, wird F5 die App weiter ausführen, bis sie den nächsten Haltepunkt erreicht.
Haltepunkte sind ein nützliches Feature, wenn Sie die Codezeile oder den Codeabschnitt kennen, die Sie im Detail untersuchen möchten. Weitere Informationen zu den verschiedenen Typen von Haltepunkten, die Sie festlegen können, z. B. bedingte Haltepunkte, finden Sie unter Verwenden von Haltepunkten.
Navigieren in Code und Überprüfen von Daten mithilfe von Datentipps
Hauptsächlich verwenden wir hier die Tastenkombinationen, da es eine gute Möglichkeit ist, die Ausführung Ihrer App im Debugger schnell auszuführen (entsprechende Befehle wie Menübefehle werden in Klammern angezeigt).
Während die Codeausführung für die
name += letters[i]
-Anweisung angehalten wird, zeigen Sie mit der Maus auf dieletters
Variable, und sie sehen den Standardwert, den Wert des ersten Elements im Array,char[10]
.Features, mit denen Sie Variablen überprüfen können, sind eines der nützlichsten Features des Debuggers, und es gibt verschiedene Möglichkeiten, dies zu tun. Wenn Sie häufig versuchen, ein Problem zu debuggen, versuchen Sie herauszufinden, ob Variablen die Werte speichern, die sie zu einem bestimmten Zeitpunkt haben sollen.
Erweitern Sie die
letters
Variable, um die Eigenschaften anzuzeigen, die alle Elemente enthalten, die die Variable enthält.Zeigen Sie als Nächstes auf die
name
Variable, und sie sehen den aktuellen Wert, eine leere Zeichenfolge.Drücken Sie F10 (oder wählen Sie zweimal Debug > Step Over) aus, um zum Aufruf der
SendMessage
Methode zu wechseln, und drücken Sie dann F10 erneut.F10 führt den Debugger zur nächsten Anweisung, ohne in Funktionen oder Methoden im App-Code einzutreten (der Code wird weiterhin ausgeführt). Durch Drücken von F10 beim Aufruf der
SendMessage
-Methode haben wir den Implementierungscode vonSendMessage
übersprungen, an dem wir vielleicht momentan nicht interessiert sind.Drücken Sie mehrmals auf F10 (oder Debuggen>Prozedurschritt), um mehrmals die
for
-Schleife zu durchlaufen. Dabei pausiert der Debugger jedes Mal am Breakpoint, sodass Sie auf diename
-Variable zeigen und ihren Wert überprüfen können.Der Wert der Variablen ändert sich bei jeder Iteration der
for
-Schleife und zeigt die Wertef
, dannfr
, dannfre
und so weiter. Um den Debugger in diesem Szenario schneller durch die Schleife zu durchlaufen, können Sie F5- drücken (oder stattdessen Debug>Continue) auswählen, wodurch Sie anstelle der nächsten Anweisung zum Haltepunkt gelangen.Wenn Sie debuggen, möchten Sie eine schnelle Möglichkeit, die Eigenschaftswerte von Variablen zu überprüfen, um festzustellen, ob sie die erwarteten Werte speichern. Dabei sind die Datentipps eine gute Hilfe.
Drücken Sie F11, oder wählen Sie Debuggen > Einzelschritt aus, während die Codeausführung noch in der
for
-Schleife derMain
-Methode pausiert ist, bis Sie beimSendMessage
-Methodenaufruf angelangt sind.Sie sollten sich in der folgenden Codezeile befinden:
SendMessage(name, a[i]);
Drücken Sie F11 ein weiteres Mal, um in die
SendMessage
-Methode zu gelangen.Der gelbe Zeiger wechselt zur
SendMessage
Methode.Durch Drücken der Taste F11 wird der Befehl Einzelschritt ausgeführt, und die App wird Anweisung für Anweisung ausgeführt. F11 ist eine gute Möglichkeit, den Ausführungsfluss im Detail zu untersuchen. Standardmäßig überspringt der Debugger Nichtbenutzercode (wenn Sie weitere Details wünschen, lesen Sie Just My Code).
Angenommen, Sie sind damit fertig, die
SendMessage
-Methode zu untersuchen, und Sie möchten die Methode verlassen, aber im Debugger verbleiben. Dies ist mit dem Befehl Ausführen bis Rücksprung möglich.Drücken Sie UMSCHALT + F11 (oder klicken Sie auf Debuggen > Ausführen bis Rücksprung).
Mit diesem Befehl wird die Ausführung der App so lange fortgesetzt (und der Debugger weiter ausgeführt), bis die aktuelle Methode oder Funktion wieder ausgeführt wird.
Der Debugger befindet sich nun wieder in der
for
-Schleife derMain
-Methode und wurde beim Methodenaufruf vonSendMessage
angehalten. Weitere Informationen zu verschiedenen Möglichkeiten zum Navigieren im Code finden Sie unter Navigieren von Code im Debugger.
Während die Codeausführung bei der Anweisung
name += letters[i]
angehalten ist, zeigen Sie auf die Variableletters
, um einen Datentipp mit der Arraygröße und dem Elementtyp (char[10]
) anzuzeigen.Anmerkung
Eines der nützlichsten Features des Debuggers ist die Fähigkeit, eine Variable zu untersuchen. Wenn Sie häufig versuchen, ein Problem zu debuggen, versuchen Sie, herauszufinden, ob Variablen werte haben, die Sie zu einem bestimmten Zeitpunkt erwarten. Das Anzeigen von Datentipps ist eine gute Möglichkeit, dies zu überprüfen.
Erweitern Sie die
letters
Variable, um alle Arrayelemente und deren Werte anzuzeigen.Zeigen Sie mit der Maus auf die
name
Variable, um den aktuellen Wert anzuzeigen, bei dem es sich um eine leere Zeichenfolge handelt.Um den Debugger zur nächsten Anweisung zu wechseln, wählen Sie F10aus, oder wählen Sie die Schaltfläche Schritt über in der Symbolleiste "Debuggen" aus, oder wählen Sie auf der Menüleiste "Debuggen>Schritt über" aus. Wählen Sie F10 zweimal mehr aus, um über den
SendMessage
Methodenaufruf hinaus zu wechseln.F10 führt den Debugger weiter, ohne in Funktion oder Methoden zu treten, obwohl ihr Code weiterhin ausgeführt wird. Auf diese Weise haben wir das Debuggen des Codes in der
SendMessage
-Methode übersprungen, an dem wir derzeit nicht interessiert sind.Wenn Sie die
for
Schleife ein paar Mal durchlaufen möchten, wählen Sie F10 wiederholt aus. Halten Sie während jeder Schleifeniteration am Haltepunkt an, und bewegen Sie dann den Mauszeiger auf die Variablename
, um ihren Wert im Datentipp zu überprüfen.Der Wert der Variablen ändert sich bei jeder Iteration der
for
Schleife und zeigt die Wertef
, dannfr
, dannfre
usw. an. Damit der Debugger die Schleife schneller durchläuft, drücken Sie stattdessen F5. Dadurch wird der Debugger bis zum nächsten Haltepunkt und nicht nur bis zur nächsten Anweisung ausgeführt.Während die Codeausführung in der
for
-Schleife derMain
-Methode angehalten wird, wählen Sie F11-, oder wählen Sie die Schaltfläche "Schritt in" auf der Debug-Symbolleiste, oder wählen Sie Debug>"Schritt in" aus der Menüleiste, bis Sie denSendMessage
-Methodenaufruf erreicht haben.Der Debugger sollte an dieser Codezeile angehalten werden:
SendMessage(name, a[i]);
Wenn Sie mit der
SendMessage
-Methode fortfahren möchten, wählen Sie F11 erneut aus.Der gelbe Zeiger wechselt zur
SendMessage
Methode.F11- hilft Ihnen, den Ausführungsfluss Ihres Codes genauer zu untersuchen. Um in eine Methode aus einem Methodenaufruf einzutreten, wählen Sie F11. Standardmäßig überspringt der Debugger die schrittweise Ausführung von Nichtbenutzermethoden. Informationen zum Debuggen von Nichtbenutzercode finden Sie unter Just My Code.
Nachdem Sie das Debuggen der
SendMessage
-Methode abgeschlossen haben, können Sie zurfor
Schleife dermain
-Methode zurückkehren.Um die
SendMessage
-Methode zu verlassen, wählen Sie Shift+F11aus, oder wählen Sie die Schaltfläche Schritt zurück in der Symbolleiste "Debug" aus, oder wählen Sie Debug>Schritt zurück in der Menüleiste aus.Durch Ausführen bis Rücksprung wird die App-Ausführung fortgesetzt und der Debugger vorgerückt, bis die aktuelle Methode oder Funktion abgeschlossen ist.
Der gelbe Pfeil wird wieder in der
for
-Schleife der MethodeMain
angezeigt, und der Vorgang wird beim MethodenaufrufSendMessage
angehalten. Weitere Informationen zu verschiedenen Möglichkeiten zum Navigieren im Code finden Sie unter Navigieren von Code im Debugger.
Navigieren durch Code mithilfe von „Ausführung bis Klick“
Drücken Sie F5, um wieder zum Haltepunkt vorzurücken.
Scrollen Sie im Code-Editor nach unten, und zeigen Sie mit dem Cursor so lange auf die
Console.WriteLine
-Methode in derSendMessage
-Methode, bis die grüne Schaltfläche Ausführung bis Klick () angezeigt wird. Die QuickInfo für die Schaltfläche zeigt „Ausführung bis hier“ an.Anmerkung
Die Schaltfläche Run to Click ist neu in Visual Studio 2017. (Wenn die grüne Pfeilschaltfläche nicht angezeigt wird, verwenden Sie in diesem Beispiel F11-, um den Debugger an die richtige Stelle zu verschieben.)
Wählen Sie die Schaltfläche Ausführung bis Klick aus.
Der Debugger wechselt zur
Console.WriteLine
-Methode.Die Verwendung dieser Schaltfläche ähnelt dem Festlegen eines temporären Haltepunkts. Run to Click ist praktisch, um schnell innerhalb eines sichtbaren Bereichs des App-Codes zu arbeiten (Sie können in jeder geöffneten Datei auswählen).
Wählen Sie F5 aus, um erneut zum Haltepunkt vorzurücken.
Zeigen Sie im Code-Editor mit dem Cursor auf den Methodenaufruf
Console.WriteLine
in der MethodeSendMessage
, bis die Schaltfläche Ausführung bis Klick angezeigt wird. Die QuickInfo für die Schaltfläche zeigt „Ausführung bis hier“ an.Wählen Sie die Schaltfläche Ausführung bis Klick aus. Alternativ können Sie mit dem Cursor an der
Console.WriteLine
-Anweisung STRG+F10auswählen. Als weitere Alternative klicken Sie mit der rechten Maustaste auf den MethodenaufrufConsole.WriteLine
, und wählen Sie im Kontextmenü Ausführen bis Cursor aus.Der Debugger wechselt zum
Console.WriteLine
Methodenaufruf.Die Verwendung der Schaltfläche Run to Click ähnelt dem Festlegen eines temporären Haltepunkts und ist praktisch, um schnell innerhalb eines sichtbaren Bereichs Ihres App-Codes in der aktuell geöffneten Datei zu navigieren.
Schnelles Neustarten der App
Wählen Sie auf der Symbolleiste „Debuggen“ die Schaltfläche Neu starten aus (STRG + UMSCHALT + F5).
Wenn Sie Neustartendrücken, spart es Zeit, anstatt die App zu beenden und den Debugger neu zu starten. Der Debugger hält an dem ersten Haltepunkt an, der beim Ausführen des Codes erreicht wird.
Der Debugger hält wieder an dem Haltepunkt an, den Sie zuvor in der for
-Schleife festgelegt haben.
Wenn Sie Ihre App von Anfang an im Debugger erneut ausführen möchten, wählen Sie STRG+UMSCHALT+F5aus, oder wählen Sie die Schaltfläche Neu starten auf der Symbolleiste "Debuggen" aus, oder wählen Sie Debuggen>Neustarten in der Menüleiste aus.
Neustarten stoppt den Debugger und startet ihn dann in einem Schritt neu. Wenn der Debugger neu gestartet wird, läuft er bis zum ersten Haltepunkt, bei dem es sich um den Haltepunkt handelt, den Sie zuvor in der for
-Schleife festgelegt haben, und hält dann an.
Überprüfen von Variablen mit den Fenstern "Autos" und "Locals"
Sehen Sie sich das Autos-Fenster am unteren Rand des Code-Editors an.
Falls dieses geschlossen ist, öffnen Sie es, solange der Debugger angehalten ist. Wählen Sie hierzu Debuggen>Fenster>Auto aus.
Im Fenster Auto werden Ihnen Variablen und der zugehörige aktuelle Wert angezeigt. Im Fenster Autos werden alle Variablen angezeigt, die in der aktuellen oder in der vorherigen Zeile verwendet werden (Bitte die Dokumentation für sprachspezifisches Verhalten überprüfen).
Sehen Sie sich als Nächstes das Fenster Locals in einer Registerkarte neben dem Fenster Autos an.
Erweitern Sie die
letters
Variable, um die darin enthaltenen Elemente anzuzeigen.Im Fenster Lokal werden Ihnen die Variablen angezeigt, die sich im aktuellen Bereich befinden, also im aktuellen Ausführungskontext.
Die Autos und Locals Fenster zeigen Variablenwerte an, während Sie debuggen. Die Fenster sind nur während einer Debugsitzung verfügbar. Im Autos-Fenster werden die Variablen angezeigt, die in der aktuellen Zeile verwendet werden, an der sich der Debugger befindet, sowie in der vorhergehenden Zeile. Im fenster "Locals" werden Variablen angezeigt, die im lokalen Bereich definiert sind. Dies ist in der Regel die aktuelle Funktion oder Methode.
Sehen Sie sich das Fenster Auto unten im Code-Editor an, während der Debugger angehalten ist.
Wenn das Fenster Auto geschlossen ist, drücken Sie STRG+D, A, oder wählen Sie in der Menüleiste Debuggen>Fenster>Auto aus.
Solange der Debugger angehalten ist, zeigen Sie das Fenster Lokal auf einer Registerkarte neben dem Fenster Auto an.
Wenn das Locals Fenster geschlossen ist, wählen Sie STRG+D, L, oder wählen Sie Debug>Windows>Locals.
Erweitern Sie im Fenster Locals die
letters
-Variable, um die Arrayelemente und deren Werte anzuzeigen.
Weitere Informationen zu den Fenstern Auto und Lokal finden Sie unter Untersuchen von Variablen über die Fenster „Auto“ und „Lokal“.
Eine Uhr stellen
Klicken Sie im Hauptfenster des Code-Editors mit der rechten Maustaste auf die name
-Variable, und wählen Sie Überwachung hinzufügen aus.
Das Fenster Watch öffnet sich unten im Code-Editor. Sie können über das Fenster Überwachung eine Variable (oder einen Ausdruck) angeben, die Sie im Auge behalten möchten.
Jetzt haben Sie eine Überwachung für die name
Variable festgelegt, und Sie können sehen, wie sich der Wert ändert, während Sie den Debugger durchlaufen. Im Gegensatz zu den anderen Variablenfenstern werden im Fenster Überwachung immer die Variablen angezeigt, die von Ihnen überwacht werden (wenn sie außerhalb des gültigen Bereichs liegen, sind sie ausgegraut).
Sie können eine Variable oder einen Ausdruck angeben, die Sie beim Durchlaufen von Code im Auge behalten möchten, indem Sie sie dem Fenster Watch hinzufügen.
Während der Debugger angehalten ist, klicken Sie mit der rechten Maustaste auf die Variable
name
, und wählen Sie Überwachung hinzufügen aus.Das Fenster Überwachen wird im unteren Bereich des Code-Editors geöffnet.
Nachdem Sie eine Überwachung für die Variable
name
festgelegt haben, können Sie den Code schrittweise ausführen, um zu beobachten, wie sich der Wert der Variablenname
bei jeder Iteration derfor
-Schleife ändert.Im Gegensatz zu den anderen Variablenfenstern zeigt das Überwachungsfenster immer die Variablen an, die Sie beobachten. Variablen, die außerhalb des Gültigkeitsbereichs liegen, werden als nicht verfügbar angezeigt.
Weitere Informationen zum Fenster Überwachen finden Sie unter Überwachen von Variablen mit Überwachungsfenstern.
Überprüfen der Aufrufliste
Während die Codeausführung in der
for
Schleife angehalten wird, wählen Sie das Call Stack-Fenster aus, das standardmäßig im unteren rechten Bereich geöffnet ist.Wenn es geschlossen ist, öffnen Sie es, während es im Debugger angehalten ist, indem Sie Debug>Windows>Call Stackauswählen.
Drücken Sie einige Male die Taste F11, bis der Debugger bei der Methode
SendMessage
anhält. Schauen Sie sich das Fenster Aufrufliste an.Im Fenster Aufrufstapel wird die Reihenfolge angezeigt, in der Methoden und Funktionen aufgerufen werden. Die oberste Zeile zeigt die aktuelle Funktion (die
SendMessage
Methode in dieser App). Die zweite Zeile zeigt, dassSendMessage
aus derMain
-Methode aufgerufen wurde usw.Anmerkung
Das Aufrufstapel-Fenster ähnelt der Debug-Perspektive in einigen IDEs, wie Eclipse.
Der Aufrufstapel ist eine gute Möglichkeit, den Ausführungsfluss einer App zu untersuchen und zu verstehen.
Sie können auf eine Codezeile doppelklicken, um den Quellcode anzuzeigen, der auch den aktuellen Bereich ändert, der vom Debugger überprüft wird. Diese Aktion führt den Debugger nicht weiter.
Sie können auch über die Kontextmenüs im Fenster Aufrufliste weitere Aktionen ausführen. So können Sie beispielsweise Haltepunkte in bestimmte Funktionen einfügen, den Debugger über Ausführen bis Cursor weiter ausführen und Quellcode untersuchen. Weitere Informationen finden Sie unter Wie Sie den Call Stack untersuchen können.
Der Aufrufstapel- kann Ihnen helfen, den Ausführungsfluss Ihrer App zu verstehen, indem sie die Reihenfolge anzeigt, in der Methoden und Funktionen aufgerufen werden.
Während der Debugger in der
for
-Schleife angehalten ist, sehen Sie sich das Fenster Aufrufliste an, das standardmäßig im unteren rechten Bereich des Code-Editors geöffnet wird.Wenn das Fenster Aufrufliste geschlossen ist, drücken Sie STRG+D, C, oder wählen Sie in der Menüleiste Debuggen>Fenster>Aufrufliste aus.
Im Fenster Aufrufliste befindet sich der gelbe Zeiger auf der aktuellen Methode
Main
.Drücken Sie einige Male die Taste F11, bis der Debugger bei der Methode
SendMessage
anhält.Die oberste Zeile des Aufrufstapel- Fensters zeigt die aktuelle Funktion an, bei der es sich um die
SendMessage
-Methode handelt. Die zweite Zeile zeigt, dass dieSendMessage
-Methode aus derMain
-Methode aufgerufen wurde.Anmerkung
Das fenster Call Stack ähnelt der Debugperspektive in einigen IDEs, z. B. Eclipse.
Im Fenster Aufrufstapel können Sie auf eine Codezeile doppelklicken, um zu diesem Quellcode zu wechseln, wodurch der aktuelle Bereich, der vom Debugger überprüft wird, geändert wird. Diese Aktion bringt den Debugger nicht voran.
Sie können auch über die Kontextmenüs im Fenster Aufrufliste weitere Aktionen ausführen. Beispielsweise können Sie Haltepunkte in bestimmte Funktionen einfügen, den Debugger über Ausführen bis Cursor vorrücken oder in den Quellcode wechseln.
Weitere Informationen zur Aufrufliste finden Sie unter Untersuchen der Aufrufliste.
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 Einblick in die Debuggerfeatures sowie Links zu weiteren Informationen erhalten.