Gå til indholdet

N060 Simpel debugging

Denne opgave har til formål at sikre, at du ved hvordan du kan debugge en konsol-applikation:

  • Skab en tom console applikation i Visual Studio Code eller Visual Studio
  • Erstat al kode i program.cs med denne kode:
Console.WriteLine("Debug demo");

// Variabel
int x = 10;
Console.WriteLine($"x = {x}");
x++;
Console.WriteLine($"x = {x}");
x = x * 2;
Console.WriteLine($"x = {x}");

Console.WriteLine("Tæller til 4");
for (int i = 0; i < 4; i++)
{
    if (i < 2)
    {
        Console.WriteLine("i er < 2");
    }
    else
    {
        Console.WriteLine("i er >= 2");
    }
    Console.WriteLine(i);
}

// Kalder metode
int res = LæggerToTalSammen(2, 2);
Console.WriteLine($"Resultat = {res}");

// Kalder metode (der kalder metode)
MetodeA();

// Break direkte i koden er også muligt
// System.Diagnostics.Debugger.Break();

static int LæggerToTalSammen(int a, int b)
{
    return a + b;
}

static void MetodeA()
{
    Console.WriteLine("I metode A");
    MetodeB();
}

static void MetodeB()
{
    Console.WriteLine("I metode B");
    MetodeC();
}

static void MetodeC()
{
    Console.WriteLine("I metode C");
}

Prøv nu at

  • Kør applikationen uden debugger (ctrl+F5) så du kan se hvad den gør
  • Sæt et breakpoint (F9) på linjen int x = 10; og tryk på F5
    • Bemærk at applikationen stopper lige før linjen skal afvikles
    • Brug F10 til at steppe gennem linjerne, der ændrer x
      • Bemærk Locals vinduet hvor x ændrer værdi
    • Stop afvikling ved at trykke shift+F5
    • Fjern breakpointet
  • Sæt et breakpoint på linjen med for-løkken og kør (F5)
    • Når applikationen er i debug-mode så step dig gennem for-løkken
      • Bemærk hvordan programpointeren bevæger sig i for-løkken og i betingelsen
    • Stop afvikling ved at trykke shift+F5
    • Tryk ctrl+shift+F9 for at slette alle breakpoints
  • Sæt et breakpoint på kaldet til LæggerToTalSammen og kør (F5)
    • Tryk på F11 (step into) og bemærk, at du følger programpointeren ned i metoden og kommer retur
    • Hold musen over res når du er retur - det er også en måde at se værdien af en variabel
  • Stop debugging (shift+F5), fjern alle breakpoints og sæt et nyt på kaldet til MetodeA og kør (F5)
    • Tryk på F11 (step into) og bemærk, at du følger programpointeren ned i alle metoder og kommer hele vejen retur
      • Tjek Call Stack-vinduet, når du når til MetodeC
        • Her kan du se hvordan du er endt i metoden

Der er meget mere i C# debugging med Visual Studio - men det vil give dig en grundlæggende viden.

Her er en video der viser hvordan du kan debugge i Visual Studio Code: