Debugging i Visual Studio

Tags:    .net
Skrevet af Bruger #2730 @ 18.02.2009
Som nævnt i overskriften vil denne artikel handle om hvordan man laver debugging i Visual Studio. Jeg bruger selv Visual Studio 2008, og de screenshots jeg viser stammer fra Visual STudio 2008. Det er stort set det sammen i alle versioner af Visual Studio.

Introduktion til Debugging


Vi kender det alle sammen, man sidder og udvikler på sin sidste nye gode ide derhjemme og noget går galt, men man ved ikke helt hvorfor det går galt. En af løsningerne på at finde ud af hvad der går galt er for hver enkelt linie i sin metode at skrive en værdi ud og mens den kører så se hvilken værdi der er den sidste der kom ud - og så ud fra dette lokalisere den linie der er problemer med. Dette fungerer også helt fornuftigt, omend det er en noget langsommelig process at debugge på denne måde. Samtidig vil man hurtigt støde på et andet problem, når man har lokaliseret den linie i sit program der giver problemer. Det vi ved på nuværende tidspunkt er, at det ikke er en syntaks fejl, ellers ville det slet ikke kompilere. Det sker i en bestemt linie (som vi har lokaliseret), vi ved også at det sikkert er en logisk fejl (måske en værdi der er null, mens vi forventer at den er noget andet). Så må vi i gang med Visual Studio og debugge det, når vi alligevel skal til det, så kan vi ligeså godt smide de ekstra linier ud af vores kode, lige nu skaber de vist bare mere forvirring.

Debug Miljøet


Visual studio er et stort og avanceret udviklingsmiljø og det kan naturligvis en masse ting med hensyn til debugging. Først skal vi have fundet de debug vinduer vi skal bruge for at lave simpel debugging. Disse vinduer giver en masse hjælp i forbindelse med debug, og de fleste af vinduerne virker først når man debugger. Vinduerne vi skal bruge er:

* Breakpoints
* Call Stack
* Immediate Window
* Locals
* Watch

Hvis ikke allerede din Visual Studio har vinduerne klar til dig kan du selv slå dem til og fra ved hjælp af menuen, nogle af vinduerne er først tilgængelige efter man har lavet et breakpoint og koden rent faktisk er stoppet ved det breakpoint man har defineret. Dette er vist heruder:



Når et breakpoint er fanget kan man fra menuen vælge de sidste vinduer man har brug for under sin debug. Når man først har gjort det een gang er de der altid når man udvikler og debugger.



Når vinduerne er tilføjet til vores udviklingsmiljø kommer de ned i bunden af visual studio og ligge, således kan vi skifte mellem dem når vi er i gang med at debugge og bruge den forskellige information de hver især tilbyder os.



Breakpoints


Breakpoints er måske det mest centrale begreb når vi snakker om debugging, det er det sted i vores kode vi har bedt Visual Studio om at stoppe kørslen af programmet når vi når dertil. Et breakpoint er i Visual Studio repræsenteret med en rød prik i margin af vores kode, som vist i det foregående screenshot, hvor man vælger debug vinduer. Bemærk at der er en gul pil oveni den røde prik og at linien nu har en gul baggrund. Den gule pil symboliserer at dette er det sted i koden hvor eksekveringen nu er stoppet, og så har den også markeret linien der på dette sted. Bemærk at denne linie endnu ikke er eksekveret. Hvis man skal i gang med at debugge er det første man gør altid at sætte et breakpoint for at få eksekveringen til at stoppe der hvor man ønsker det. Hvis vi kigger på vores breakpoint vindue som vist i ovenstående screenshot kan vi se et breakpoint og nogle ekstra informationer om hvor henne i vores kode breakpointet er, og hvis vi dobbeltklikker på det, kommer vi hen til det. Når man bliver mere fortrolig med breakpoints kan man højreklikke på dem og sætte nogle krav op, som eks, antal gennemløb, eller et boolsk udtryk (en variabel skal hedde noget bestemt)


Hvad synes du om denne artikel? Giv din mening til kende ved at stemme via pilene til venstre og/eller lægge en kommentar herunder.

Del også gerne artiklen med dine Facebook venner:  

Kommentarer (6)

User
Bruger #714 @ 18.02.09 11:36
Lækker artikel om et meget undervurderet emne (og noget jeg egentlig aldrig har fundet en artikel omkring), dog rigtig rigtig brugbart!
User
Bruger #5789 @ 23.02.09 21:02
Æv, nu kommmer der ikke flere lette .net sprog baserede spørgmål længere :)
User
Bruger #5789 @ 23.02.09 21:03
... og keep em comming.
User
Bruger #13669 @ 08.03.09 12:59
Argh, kan ikke læse det først, login boksen er hende over det!
User
Bruger #13669 @ 08.03.09 13:02
Så er det godt der er noget der hedder "vis kilde" :D
User
Bruger #8985 @ 07.06.11 01:14
Er det bare mig (eller rettere, Opera) eller bliver dele af billederne i denne artikel dækket af karmabarometret?
Du skal være logget ind for at skrive en kommentar.
t