5.6. GNU Visual Debugger

Hvis der er en fejl i et program som du ikke kan finde årsagen til, så kan et fejlfindingsværktøj som GNU Visual Debugger (GVD) være nyttigt. Fidusen er at man kan køre programmet inde fra GVD der så holder øje med værdien af variable, status for forskellige parallelt kørende dele af programmet, hvilke funktioner og procedurer der er kaldt, og meget andet nyttigt. Ved at køre programmet i små skridt, og indimellem tjekke relevante data, kan man måske finde tydeligere spor efter fejlen.

Hvis GVD skal kunne hjælpe dig med at forstå hvad et program gør, er det nødvendigt at bede oversætteren om at inkludere fejlfindingsinformation i det oversatte program. Hvis det for eksempel drejer sig om Ada-programmet fejlfindingseksempel.adb, kan det gøres med følgende kommando:


hven% gnatmake fejlfindingseksempel -cargs -g
For alle oversættere der bygger på GCC er det flaget -g der gør at der bliver inkluderet fejlfindingsinformation i det oversatte program.

Når du har et program der indeholder fejlfindingsinformation, kan du starte GVD og indlæse programmet (her fejlfindingseksempel fra før) med kommandoen:


hven% gvd fejlfindingseksempel 


Når GVD kører vil dets vindue være delt op i fire dele:



Den vigtigste fidus ved et fejlfindingsprogram er nok at du kan vælge at køre programmet én linje ad gangen. Hvis du har en anelse mere travlt eller allerede ved hvilken del af programmet du vil studere, kan du indsætte stopklodser i programmet. Det gør du ved at højreklikke på den linje i kildeteksten du vil stoppe ved, og vælge "Sæt stopklods på linje <linjenummer>" på menuen. Hvis du nu starter programmet (ved at taste F2), vil programmet stoppe – men ikke afslutte – første gang det kommer til denne linje. Du kan nu gå en linje frem ad gangen med F5 eller lade programmet køre videre – indtil det kommer til en anden stopklods – med F8.