Debugging
Præsenter som slidesLæringsmål
- Kan bruge breakpoints til at stoppe programkørslen på udvalgte steder
- Kan anvende Step Into, Step Over og Step Out til at analysere kodeflow
- Kan læse og ændre variabelværdier i Locals og Autos under debugging
- Kan identificere og rette simple logiske fejl ved hjælp af debuggeren
- Forstår debugging som et aktivt værktøj til problemløsning — ikke kun fejlretning
Fejlfinding og debugging
Debugging er kunsten at finde og rette fejl i kode. I GF2 bruger I primært Visual Studio på Windows — her er en introduktion til debuggeren og de vigtigste teknikker.
Debugging handler om at forstå, hvad koden faktisk gør under kørsel — ikke kun at fikse røde fejlbeskeder.
Kom i gang — seks trin
1. Sæt breakpoints
Klik i den grå bjælke ved siden af linjenummeret. Et rødt stoppunkt (breakpoint) vises. Når programmet kører, stopper det på den linje.
2. Kør din kode
Klik Start Debugging eller tryk F5. Programmet kører indtil det rammer dit breakpoint.
3. Gennemgå koden trin for trin
Brug step-knapperne eller genveje:
| Tast | Navn | Gør |
|---|---|---|
| F11 | Step Into | Gå ind i metodekald |
| F10 | Step Over | Kør næste linje — spring over metodekald |
| Shift+F11 | Step Out | Færdiggør nuværende metode, stop i kaldende kode |
| F5 | Continue | Kør videre til næste breakpoint |
Fra venstre i værktøjslinjen: Step Into (F11), Step Over (F10), Step Out (Shift+F11).
Eksempel: Du er på ShowResult(score);
- F10 — kører hele
ShowResultog stopper på næste linje - F11 — går ind i
ShowResultog stopper på første linje der
4. Se variabler
I Autos og Locals fanerne ser du aktuelle værdier for variabler i scope. Watch lader dig følge specifikke udtryk (fx score >= 60).
Call Stack viser kæden af metodekald, der førte til breakpointet — nyttigt til at forstå, hvorfor du er endt her.
Hover over variabler i editoren for hurtigt at se værdier uden at åbne vinduer.
5. Ændre variabelværdier
Højreklik på en variabel i Autos eller Locals → Modify Value. Test, hvordan andre værdier påvirker programmets adfærd — uden at genstarte.
6. Fortsæt kørsel
Tryk Continue eller F5 for at køre videre til næste breakpoint eller programmets afslutning.
Debugging er en proces — det tager tid at finde fejl. Med praksis og tålmodighed bliver du dygtigere til det.
Breakpoint-typer
Visual Studio understøtter flere typer breakpoints:
- Breakpoint — stopper på en bestemt linje (den du bruger mest)
- Condition breakpoint — stopper kun hvis en betingelse er opfyldt (fx
i == 42ellerscore < 0) - Tracepoint — logger en besked uden at stoppe programmet — god til at spore flow
- Temporary breakpoint — aktiv én gang, fjernes automatisk efter stop
- Dependent breakpoint — aktiveres først efter et andet breakpoint er ramt
I praksis bruger du næsten altid det normale breakpoint. Højreklik på breakpointet for betingelser og avancerede indstillinger.
Logiske fejl vs. compile-fejl
Compile-fejl (røde understregninger) — programmet kører slet ikke. Logiske fejl er værre: programmet kører, men giver forkert resultat.
// Logisk fejl — gennemsnit bliver forkert ved heltalsdivision
double average = (a + b + c) / 3;
// Rettelse
double average = (a + b + c) / 3.0;
Ved logiske fejl er der ingen rød fejlbesked — sæt breakpoint, kør med F5, og tjek variabler trin for trin.
Exceptions og try/catch
En exception er en runtime-fejl — programmet crasher, medmindre du fanger den:
Uden catch stopper programmet med fejlbesked — brug debuggeren til at læse stack trace og finde linjen.
Unit tests og videre læring
Visual Studio har også værktøjer til softwaretest — fx unit tests. Det er et naturligt næste skridt efter manuel debugging.
Microsofts læringsforløb:
Use Visual Studio for modern development (Microsoft Learn)
Generel C#-testdokumentation:
Git-trin
- Branch:
main - Commit:
docs: debugging og breakpoints
Opsummering
- F5 starter debugging; breakpoints stopper på valgte linjer
- F10/F11/Shift+F11 styrer gennemløb af kode
- Locals, Autos og Watch viser variabelværdier — du kan også ændre dem under kørsel
- Condition breakpoints og tracepoints giver finere kontrol
- Debugging er aktiv problemløsning — især vigtig ved logiske fejl uden compile-errors
Test din viden
Spørgsmål 1
Hvordan sætter du et breakpoint i Visual Studio?
Et rødt stoppunkt i marginen stopper programmet på den linje, når du kører med F5 (Start Debugging).
Spørgsmål 2
Hvad er forskellen på F10 (Step Over) og F11 (Step Into)?
På ShowResult(score); — F10 kører hele metoden og stopper på næste linje. F11 hopper ind i ShowResult og stopper på første linje der.
Spørgsmål 3
Hvor ser du aktuelle variabelværdier under debugging?
Locals viser variabler i nuværende scope. Watch lader dig følge specifikke udtryk. Call Stack viser, hvilke metoder der ledte til breakpointet.
Spørgsmål 4
Hvad er en logisk fejl?
Compile-fejl stopper kørslen. Logiske fejl er værre — koden kører, men fx (a+b+c)/3 giver forkert gennemsnit ved heltalsdivision. Debuggeren hjælper her.
Spørgsmål 5
Hvad gør Shift+F11 (Step Out)?
Step Out er nyttig, når du er gået ind i en metode med F11 og vil tilbage til kalderen uden at steppe linje for linje gennem resten.
Spørgsmål 6
Hvad er et condition breakpoint?
Condition breakpoints sparer tid i løkker — programmet kører, indtil fx score < 0 bliver sand. Højreklik på breakpointet for at sætte betingelsen.
Spørgsmål 7
Hvorfor er try/catch relevant ved debugging?
Uden catch stopper programmet ved fx DivideByZeroException. Med try/catch kan du vise brugervenlig besked og bruge debuggeren til at læse stack trace.