Untersuchen der App mit verlaufsbezogenem Debuggen (C#, Visual Basic, C++)
Sie können verlaufsbezogenes Debuggens Debuggen verwenden, um die Ausführung Ihrer Anwendung rückwärts und vorwärts zu durchlaufen und ihren Status zu überprüfen.
Sie können IntelliTrace in der Visual Studio Enterprise Edition verwenden, jedoch nicht in der Professional oder Community Edition.
Navigieren im Code mit verlaufsbezogenem Debuggen
Beginnen wir mit einem einfachen Programm, das einen Fehler aufweist. Fügen Sie in einer C#-Konsolenanwendung folgenden Code hinzu:
static void Main(string[] args)
{
int testInt = 0;
int resultInt = AddIterative(testInt);
Console.WriteLine(resultInt);
}
private static int AddIterative(int j)
{
for (int i = 0; i < 20; i++)
{
j = AddInt(j);
}
return j;
}
private static int AddInt(int add)
{
if (add == 10)
{
return add += 25;
}
return ++add;
}
Wir gehen davon aus, dass der erwartete Wert des resultInt
nach dem Aufruf von AddIterative()
20 beträgt (das Ergebnis des Inkrementierens von testInt
× 20). (Gehen wir außerdem davon aus, dass Ihnen der Fehler in AddInt()
nicht angezeigt wird). Das Ergebnis beträgt jedoch tatsächlich 44. Wie finden wir den Fehler, ohne AddIterative()
schrittweise 10 Mal durchzugehen? Wir können das verlaufsbezogene Debugging verwenden, um Fehler schneller und leichter zu finden. Gehen Sie dabei folgendermaßen vor:
Stellen Sie unter Extras > Optionen > IntelliTrace > Allgemein sicher, dass IntelliTrace aktiviert ist, und wählen Sie IntelliTrace-Ereignisse und -Aufrufinformationen aus. Wenn Sie diese Option nicht auswählen, wird Ihnen der Navigationsbundsteg nicht angezeigt (sie Erläuterung weitere unten).
Legen Sie einen Haltepunkt in der Zeile
Console.WriteLine(resultInt);
fest.Beginnen Sie mit dem Debuggen. Der Code wird bis zum Haltepunkt ausgeführt. Im Fenster Lokal wird Ihnen für
resultInt
der Wert 44 angezeigt.Öffnen Sie das Fenster Diagnosetools (Debuggen > Diagnosetools anzeigen). Das Code-Fenster sieht wie folgt aus:
Neben dem linken Rand sollte ein doppelter Pfeil angezeigt werden, genau über dem Haltepunkt. Dieser Bereich wird als Navigationsbundsteg bezeichnet und dient zum verlaufsbezogenen Debuggen. Klicken Sie auf den Pfeil.
Im Codefenster sollte Ihnen die vorangegangene Codezeile (
int resultInt = AddIterative(testInt);
) rosa gefärbt angezeigt werden. Über dem Fenster sollte eine Meldung angezeigt werden, dass Sie sich nun im verlaufsbezogenes Debugging befinden.Das Codefenster sieht nun folgendermaßen aus:
Jetzt können Sie per Einzelschritt auf die Methode
AddIterative()
zugreifen (F11 oder Schaltfläche Einzelschritt auf dem Navigationsbundsteg). Navigieren Sie schrittweise vorwärts (F10 oder Zum nächsten Aufruf wechseln auf dem Navigationsbundsteg). Die rosa Linie befindet sich jetzt in derj = AddInt(j);
-Zeile. Durch Drücken von F10 gelangen Sie in diesem Fall nicht in die nächste Codezeile. Stattdessen fährt es mit dem nächsten Funktionsaufruf fort. Das verlaufsbezogene Debugging navigiert von Aufruf zu Aufruf, und überspringt Codezeilen, die nicht in einem Funktionsaufruf enthalten sind.Nun in die
AddInt()
-Methode einsteigen. Der Fehler in diesem Code sollte Ihnen sofort angezeigt werden.
Zugehöriger Inhalt
Dieses Verfahren behandelt die Möglichkeiten des verlaufsbezogenen Debugging nur oberflächlich.
- Wenn Sie beim Debuggen Momentaufnahmen anzeigen möchten, finden Sie weitere Informationen unter Untersuchen von vorherigen App-Zuständen mithilfe von IntelliTrace.
- Weitere Informationen über die unterschiedlichen Einstellungen und Auswirkungen der verschiedenen Schaltflächen auf dem Navigationsbundsteg finden Sie unter IntelliTrace-Funktionen.