Informatika2-2012/Gyakorlat04
Ador (vitalap | szerkesztései) (→Ismerkedés a mutatókkal és a debuggerrel) |
Ador (vitalap | szerkesztései) (→Ismerkedés a mutatókkal és a debuggerrel) |
||
35. sor: | 35. sor: | ||
Futtassuk le lépésről lépésre (szinte minden sorban legyen töréspont) a programot és figyeljük meg a változók értékeinek | Futtassuk le lépésről lépésre (szinte minden sorban legyen töréspont) a programot és figyeljük meg a változók értékeinek | ||
változását ( a lenti "Locals" fül alatt fognak látszani)! | változását ( a lenti "Locals" fül alatt fognak látszani)! | ||
+ | |||
+ | Figyeljük meg azt is, hogy a töréspont az aktuális sorban található parancs lefutása előtt vagy után állítja-e meg a futást! |
A lap 2012. február 29., 23:30-kori változata
Mutatók (pointer-ek)
A lenti feladatokat a CodeLite-ban oldhatjátok meg legegyszerűbben (ne felejtsetek el minden feladathoz új projektet nyitni!), de akinek a konzolos, gcc-s fordítás a szimpatikusabb úgy is csinálhatja.
Ismerkedés a mutatókkal és a debuggerrel
Ha mutatókakl végzünk műveleteket, azt könnyű elrontani. Ezért mielőtt belemerülünk, ismerkedjünk meg egy hatékony hibakeresési módszerrel.
A CodeLite tartalmaz beépített debuggert (bug = rajtett hiba a kódban; debugging = ennek keresése/javítása; debugger = ezt segítő eszközkészlet/segédprogram).
Másoljuk be a következő kódot egy új projekt main.c-jébe:
#include <stdio.h> main() { int a=5; int b=6; int c = 7; int *bb; int *aa = &a; bb = &b; a = 3; aa = bb; *aa = 8; aa = &c; *aa = 10; *bb = *aa; }
A hibakeresés egyik fontos eszköze hogy a program futását bárhol megállíthassuk és ránézhessünk a változók pillanatnyi értékére. A program persze túl gyorsan fut ahhoz hogy futás közben megnyomjunk egy "pause" gombot, ezért előre meg kell adni azokat a helyeket (sorokat) ahol szeretnénk hogy megálljon a futás. Ezek az ún. "töréspontok" (breakpoint). Állítsunk be töréspontokat a kód melett balra a sorszámokat is tartalmazó csíkra (a sor-szám mellé kicsit jobbra) kattintva! Piros pöttyöknek kell megjelenniük a kattintás helyén. Ezek a pöttyök jelzik a töréspontokat. Egy következő kattintás kitörli a töréspontot.
A programot ne úgy futtassuk mint eddig (Build menü -> Run), hanem a "Debug" menüpont alatti "Start/Continue debugger" -rel. A kerek kék "play-gombbal" ugorhatunk a következő töréspontra, a kapcsoszárójeles-zöldnyilas gombokkal pedig sorról sorra haladhatunk akkor is ha nincs ott töréspont, illetve bemehetünk egy függvényhívás belsejébe, vagy a visszatérése utáni állapotra ugorhatunk.
Futtassuk le lépésről lépésre (szinte minden sorban legyen töréspont) a programot és figyeljük meg a változók értékeinek változását ( a lenti "Locals" fül alatt fognak látszani)!
Figyeljük meg azt is, hogy a töréspont az aktuális sorban található parancs lefutása előtt vagy után állítja-e meg a futást!