TOC

This article has been localized into German by the community.

Debugging:

Schrittweise untersuchen

In diesem Kapitel werden wir uns mit dem Schritt durch Ihren Code beschäftigen, was ein weiterer sehr wichtiger Teil des Debuggens ist. Zu diesem Zweck habe ich diese einfache Anwendung geschrieben:

namespace DebugTest
{
    class Program
    {
        static void Main(string[] args)
        {
            int a = 5;
            a = a * 2;
            a = a - 3;
            a = a * 6;
            Console.WriteLine(a);
        }
    }
}

Er manipuliert die Variable "a" einfach ein paar Mal und gibt das Endergebnis aus. Versuchen Sie, einen Breakpoint, wie im vorherigen Kapitel beschrieben, auf die erste Zeile zu setzen, in der a verwendet (und deklariert) wird. Führen Sie nun die Anwendung aus. Die Ausführung wird gestoppt und Sie können mit der Maus über das a fahren, um sicherzustellen, dass das, was wir im vorigen Kapitel gelernt haben, tatsächlich wahr ist: Die Variable enthält nur den Standardwert, da der Code, der den Wert zuweist (in diesem Fall 5), noch nicht ausgeführt wurde, aber lassen Sie uns das ändern. Wählen Sie aus dem Debug-Menü die Option "Step over", oder noch besser, verwenden Sie die Tastenkombination F10. Die Ausführung geht nun zur nächsten relevanten Zeile über und wenn Sie mit der Maus über die Variable fahren, sehen Sie, dass sie einen Wert hat. Probieren Sie es noch einmal und Sie sehen die Wertänderung je nach der ausgeführten Zeile, bis Sie am Ende angelangt sind.

Okay, das war ziemlich einfach, aber auch sehr nützlich, wie Sie feststellen werden, sobald Sie anfangen, komplizierteren Code zu schreiben. In diesem Beispiel war der Ablauf des Codes sehr einfach, da wir innerhalb einer einzigen Funktion blieben, aber was ist, wenn sich Ihr Code über mehrere Klassen und/oder Funktionen verteilt? Versuchen Sie dieses Beispiel:

namespace DebugTest
{
    class Program
    {
        static void Main(string[] args)
        {
            int a = 5;
            int b = 2;
            int result = MakeComplicatedCalculation(a, b);
            Console.WriteLine(result);
        }

        static int MakeComplicatedCalculation(int a, int b)
        {
            return a * b;
        }
    }
}

Setzen Sie einen Breakpoint auf die erste Zeile der Main-Methode und starten Sie die Anwendung. Benutzen Sie nun die "Step over"-Funktion, um durch jede Zeile zu springen. Wie Sie sehen werden, bewegt er sich ohne Vorankündigung über den Funktionsaufruf - so funktioniert das Debugging einfach. Nun versuchen Sie es erneut, von Anfang an, und wenn Sie die Zeile mit dem MakeComplicatedCalculation()-Aufruf erreicht haben, wählen Sie Debug -> Step into, oder verwenden Sie die Tastenkombination F11. Der Debugger springt nun in den ersten möglichen Funktionsaufruf, so dass Sie auch durch diese Funktion springen können. Wie Sie sich wahrscheinlich vorstellen können, können Sie damit einen komplizierten Codeblock durchgehen, während Sie nur die Funktionsaufrufe eingeben, die Sie interessieren.

Wenn Sie in eine Funktion eintreten und dann feststellen, dass Sie lieber zum vorherigen Kontext zurückkehren möchten, verwenden Sie die sehr logisch benannte Option aus dem Debug-Menü "Step out" (Tastaturkürzel ist Shift+F11). Dadurch kehren Sie zu Ihrem vorherigen Kontext zurück, was natürlich bedeutet, dass Sie in so viele Funktionsaufrufe eintreten können, wie Sie möchten, und dann den Weg zurück finden, indem Sie die Option step out verwenden.


This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!