Linux – Friheden til at programmere: Version 2.5.20050330 – 2020-12-31 | ||
---|---|---|
forrige | Kapitel 5. Programmørens værktøjskasse | næste |
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 -gFor 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:
Nederst er der en log over hvad der sker med programmet.
I midten til venstre er der en oversigt over de kildetekstfiler programmet er sammensat af.
I midten til højre vises de kildetekstfiler du vælger (desværre kun en ad gangen).
Øverst er der en opslagstavle hvor du kan se udvalgte variables værdier. Når GVD starter er opslagstavlen tom. Du vælger variablene ved at klikke på dem med højre musetast nede i kildeteksten. Der fremkommer så en menu hvor et af punkterne er "Vis <variablens navn>". Når du vælger det, kommer der et lille vindue med variablen oppe på opslagstavlen.
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.