3.12 Debuggaus
Debuggauksen avulla voidaan metsästää ohjelmassa
olevia virheitä. On kuitenkin muistettava, että debuggeri
on vain apuväline, jota käyttäjän on osattava
käyttää, jotta virheet löytyisivät.
Debuggauksessa ohjelmoija voi mm. seurata ohjelman toimintaa
rivi riviltä. Välillä ohjelmoija voi katsoa
muuttujien tai muistipaikkojen sisältöä tai
näytölle tulostunutta tavaraa. Tästä
toiminnosta on hyötyä erityisesti silloin, kun ohjelma
näyttää päällisin puolin toimivalta, mutta
silti se ei tuota oikeaa lopputulosta. Debuggaus toimii
seuraavasti:
- Hae näytölle ohjelma, jonka toimintaa haluat
seurata.
- Käynnistä debuggaus (Run | Trace into tai
F7). Jonkin ajan kuluttua
ohjelmakoodiin ilmestyy "palkki", joka peittää
pääohjelman otsikkorivin. Tämä palkki on
debuggauksessa käytettävä eräänlainen
kursori, joka näyttää seuraavaksi suoritettavan
rivin.
- Paina F7 (tai valitse Run | Trace
into). Nyt palkki siirtyy seuraavalle suoritettavalle riville.
Huomaa, että debuggaus hyppää suoraan muuttujien
esittelyjen yli. Debuggauksen aikana voit tutkia esim.
näytölle tulostuvaa tavaraa kuten normaalisti
(Alt-F5 tai Window | User Screen).
- Toista F7:n painaminen kunnes päästään
ohjelman loppuun eli viimeiseen aaltosulkuun.
- Voit keskeyttää debuggauksen ajamalla ohjelman
loppuun (Ctrl-F9 tai Run | Run) tai
painamalla Ctrl-F2.
Debuggauksen aikana voi tutkia eri muuttujien arvoja ohjelman
eri vaiheissa. Tutkinta tehdään seuraavasti:
- Käynnistä debuggaus tutkittavalle ohjelmalle.
- Valitse Debug | Watches | Add watch tai paina
Ctrl-F7. Näytölle tulee ikkuna, johon
kirjoitetaan tutkittavan muuttujan nimi ja painetaan Returnia.
Samalla tavoin voidaan lisätä useampiakin muuttujia.
Tämän jälkeen ko. muuttujien nimet ja niiden arvot
ilmestyvät Watch-nimiseen ikkunaan.
- Jatka debuggausta (F7 tai Run | Trace
into). Nyt Watch-ikkunassa olevien
muuttujien arvot muuttuvat sitä mukaa kun niitä
käsitellään ohjelmassa.
- Voit lisätä uusia muuttujia tarkkailtavien listalle
kesken debuggauksenkin.
Jos kääntäjä ei osaa sanoa muuttujille
mitään arvoa, niin muuttujan nimen perässä on
teksti "undefined symbol" eli vapaasti
suomennettuna "määrittelemätön muuttuja".