Professional Documents
Culture Documents
Uvod
Kako vaši programi postaju komplikovaniji javlja se potreba za praćenjem izvršavanja programa
korak po korak. Ovde debugger nalazi svoju primenu. Poznata je činjenica da dibagovanje
zauzima više od 50% vremena prilikom izrade programa. Treniranje upotrebe dibagera
programera početnika veoma je bitna stavka u njegovom profesionalnom razvoju. U cilju
osposobljavanja programera početnika za pisanje programa bez grešaka i korišćenje dibagera
neophodno je poboljšanje razumevanja funkcionisanja programa i akumuliranje iskustva.
Dibagovanje može biti veoma teško, čak frustrirajuće, posebno za početnike. Studenti, u većini
slučajeva, koriste dibager izvan učionice. Profesori retko imaju priliku da posmatraju studente
dok rade sa dibagerom. Najveći deo istraživanja o debugging-u sproveden je tokom 80-ih godina.
Neka od tih istraživanja su relevantna čak i danas, ali većina nije. Stvari su se mnogo promenile u
poslednjih 30 godina. Došlo je do napretka u razvoju programskih jezika i razvojnih okruženja.
Dibagovanje prvenstveno služi za otklanjanje grešaka u kodu. Greška je pronadjena ako je
student u mogućnosti da identifikuje liniju koda u kojoj se greška nalazi. Ispravljanje greške
podrazumeva ispravnu izmenu linije koda, najčešće posle nekoliko neuspešnih izmena, u cilju
dovođenja programa u radno stanje.
Pre svega je neophodno odrediti mesto u kodu kod kojeg će se program pauzirati. Potrebno je
kliknuti na Debug pa zatim na Run to Cursor. Pozicija kursora označava početnu liniju od koje
će se dalje izvršavanje programa pratiti. Sledeći korak je određivajne zaustavne tačke ne bi li bilo
moguće ispitati rezultate dosadašnjeg učinka programa. Ovo se postiže postavljanjem kursora na
željenu liniju koda kod koje želimo prekid izvršavajna. Mesto na kojem se program prekida
naziva se Breakpoint. Da bismo posmatrali određenu promenljivu tokom izvršavanja programa
neophodno je otvoriti Watches prozor. Potrebno je kliknuti na Debug i zatim iz padajućeg menija
izabrati Debugging Windows – Watches. Žutom strelicom je označeno mesto prekida, što znači
da se, u našem slučaju, program izvršio do linije 12. U prozoru Watches vidimo da je vrednost
promenljive x inicijalizovana na 11 a vrednost promenljive y na 33 (slika 3).
Slika 3. Izvršavanje koda do linije 12
U sledećoj liniji koda poziva se funkcija swapv(x, y). Da bismo videli šta se dešava prilikom
poziva i izvrsavanja funkcije potrebno je iz menija Debug izabrati stavku Step into(Shift - F7).
Sada smo na liniji 20. U prozoru Watches vidimo argumente funkcije i njihove vrednosti.
Pritiskom na taster F7 debbuger izvršava sledeću liniju koda. Na ovaj način možemo ispratiti šta
se dešava unutar funkcije. Kada ste završili sa debugging-om možete kliknuti na stavku Continue
iz menija Debug i vaš program će se izvršiti do kraja. Moguće je koristiti i stavku Stop debugger.
Continue komanda je ipak bolje rešenje zato što program stiže do prirodnog kraja. Ako se vaš
program zaglavi u petlji ili niste sigurni da možete izaći iz programa bezbedno, možete iskoristiti
komandu Stop Debugger. Moguće je detaljnije definisati mesta pauze u vašem programu. Ovo je
omogućeno postavljanjem breakpoint-a u kod. Možete imati više prekidnih tačaka u kodu. Kada
debugger naiđe na breakpoint program se pauzira i debugger vam dozvoljava inspekciju koda.
Breakpoint se zadržava na formi sve dok ga ne uklonite. Da biste dodali breakpoint pritisnite
taster F5 ili kliknite desno od broja linije koda. Na slici 4 breakpoint je prikazan crvenom tačkom.
Slika 4. Dodavanje breakpoint-a
Posle dodavanja breakpoint-a na željeno mesto izvršavanje programa možete započeti pritiskom
na stavku Start iz Debug menija. Program se izvršava sve dok ne stigne do crvenog kružića. Kada
stigne do prvog breakpointa program se pauzira. Unutar crvenog kružića pojavljuje se žuti
trougao.
Zaključak
U prethodnom tekstu smo analizirali primer primene dibagera na konkretnom programu i
možemo izvući određene zaključke. Upotreba dibagera ne samo da skraćuje vreme
detektovanja i ispravljanja grešaka već i omogućava sticanje suštinskog razumevanja
funkcionisanja programa. Korišćenjem dibagera ubrzavate process razvijanja programa i
time povećavate svoju produktivnost.
Literatura
Lee, G.L. (1998). Debug It: A debugging practicing system.( J. C.W. Wu, Ed) Taipei:
Pergamon.
Fitzgerald, S.F. (2008). Debugging. (R.M. McCauley & G.L. Lewandowski, Eds.)
St. Paul: Routledge.