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:
using System;

namespace DebugDemo
{
    class Program
    {
        static void Main(string[] args)
        {

            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 ud i kode 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å linje 15 og tryk på F5
    • Bemærk at applikationen stopper lige før den skal til at afvikle linje 15
    • Brug F10 til at steppe dig gennem koden til linje 20
      • Bemærk Locals vinduet hvor x ændrer værdi
    • Stop afvikling ved at trykke shift+F5
    • Fjern breakpoint fra linje 15
  • Sæt et breakpoint på linje 23 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å linje 35 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å linje 39 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
      • Check Call stack vinduet når du når program pointeren når til linje 63
        • 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: