$$ \newcommand{\floor}[1]{\left\lfloor{#1}\right\rfloor} \newcommand{\ceil}[1]{\left\lceil{#1}\right\rceil} \renewcommand{\mod}{\,\mathrm{mod}\,} \renewcommand{\div}{\,\mathrm{div}\,} \newcommand{\metar}{\,\mathrm{m}} \newcommand{\cm}{\,\mathrm{cm}} \newcommand{\dm}{\,\mathrm{dm}} \newcommand{\litar}{\,\mathrm{l}} \newcommand{\km}{\,\mathrm{km}} \newcommand{\s}{\,\mathrm{s}} \newcommand{\h}{\,\mathrm{h}} \newcommand{\minut}{\,\mathrm{min}} \newcommand{\kmh}{\,\mathrm{\frac{km}{h}}} \newcommand{\ms}{\,\mathrm{\frac{m}{s}}} \newcommand{\mss}{\,\mathrm{\frac{m}{s^2}}} \newcommand{\mmin}{\,\mathrm{\frac{m}{min}}} \newcommand{\smin}{\,\mathrm{\frac{s}{min}}} $$

Prijavi problem


Obeleži sve kategorije koje odgovaraju problemu

Još detalja - opišite nam problem


Uspešno ste prijavili problem!
Status problema i sve dodatne informacije možete pratiti klikom na link.
Nažalost nismo trenutno u mogućnosti da obradimo vaš zahtev.
Molimo vas da pokušate kasnije.

Ovo poglavlje je namenjeno onima koji koriste razvojno okruženje Code::Blocks.

Program ne moraš da izvršiš u celini, već možeš da po volji zaustaviš izvršavanje na bilo kojoj njegovoj naredbi. Takvo mesto se zove tačka prekida (engl. breakpoint) i označeno je crvenim krugom, kao na slici.

Prekidne tačke nam omogućuju da na određenim mestima u fazi ispravljanja programa napravimo prekid izvođenja programa. Postoji nekoliko načina da postavimo prekidne tačke u razvojnom okruženju Code::Blocks:

  • Pozicionirajmo se na liniju u programu u kojoj želimo postaviti prekidnu tačku.

  • a) Izaberimo Debug → Toggle Breakpoint ili b) Napravimo desni klik miša unutar editora, a potom izaberimo Toggle Breakpoint ili c) Kliknimo u sivi prostor sa leve strane kôda, ali desno od rednog broja linije ili d) Pritisnimo taster F5.

  • Isti redosled akcija deaktivira prekidnu tačku na datoj lokaciji.

Nakon postavljene prekidne tačke na sivoj traci, levo od teksta se pojavljuje crveni kružić. To je lokacija na koje možemo kliknuti da bismo (de)aktiviriali prekidnu tačku.
Sada pokrenite program izborom opcije u meniju Debug→Start  ili funkcijskim  tasterom F8.

  • Ako želiš da izvršiš samo jednu naredbu, pritisni taster F7, ili jednu od ovih strelica u ToolBar-u

Kada programeri izvršavaju jednu po jednu naredbu da bi lakše pratili šta se tačno dešava u programu, oni kažu da koračaju (ili stepuju) kroz program.

  • Ako želiš da se izvršavanje zaustavi kod kursora, pritisni F4 (kursor je ona mala vertikalna linija koja treperi negde između slova i pokazuje gde će biti ispisano ili izbrisano sledeće slovo).

Dok izvršavaš program deo po deo, žuta strelica na levoj strani pokazuje naredbu koja će sledeća biti izvršena.

Ako te interesuju vrednosti promenljivih koje sadrže usputne rezultate (a ne želiš da dodaješ naredbe za njihovo ispisivanje), dovoljno je da u meniju izabereš opciju Debug → Debugging windows →  Watches.  Pojaviće se  prozor za nadzor promenljivih.  Kliknite desnim dugmetom miša na ovaj prozor i izaberite opciju Add watch.  Zatim u  prozor koji se pojavi unesi naziv promenljive koju želiš nadzirati npr. trajanjeEpizode.  Pogledajte  sliku za prikaz kako bi vaš ekran trebalo da izgleda.

Savet: ovako možeš da bolje razumeš kako program radi. U prozoru Watch možemo uneti jedno ispod drugog nazive promenljivih  kao i jednostavnije (npr.  matematičke) izraze čije vrednosti želimo videti u prekidnoj tački.  U ovom primeru,  možete videti da je vrednost promenljive trajanjeEpizode = 25.

Ne radi? Ako imaš problema sa gledanjem vrednosti promenljivih, to je možda zato što je tvoja trenutna konfiguracija "Release". To znači da je tvoje okruženje trenutno podešeno da pravi verziju programa koja je brža i manja, ali koja nema sve podatke potrebne za gledanje vrednosti promenljivih (Release verzija se obično daje na upotrebu drugima). Sve što treba da uradiš je da u standardnom ToolBaru konfiguraciju promeniš na Debug, i ponovo pokreneš program:

Na raspolaganju ti je i stalan prozor koji pokazuje vrednosti svih promenljivih u tvom programu (tačnije, u tvojoj main funkciji, odnosno u funkciji koja se trenutno izvršava). Taj prozor izgleda ovako:

Ako ne vidiš ovakav prozor dok izvršavaš program deo po deo, možeš da ga otvoriš koristeći meni Debug->Debugging windows →Watch. U ovom prozoru crveno se prikazuju vrednosti koje su promenjene između prethodnog i ovog zaustavljanja programa. Na primer, u slučaju da izvršavaš jednu po jednu naredbu koristeći F7, crvene će biti vrednosti koje su promenjene poslednjom izvršenom naredbom.

Ako u bilo kom trenutku želiš da izvršiš program do kraja (ili do sledeće tačke prekida, ako takva postoji), pritisni F8, isto kao da program nije ni počeo sa radom.

Ako želiš da potpuno prekineš izvršavanje (na primer, zato što hoćeš da nešto promeniš u programu i da ga izvršiš ispočetka, ili završavaš sa radom), pritisni Shift-F8. Istu ulogu ima dugme sa crvenim kvadratom ("Stop debugger" dugme) u ToolBar-u koji izgleda ovako (tu su i strelice za izvršavanje jedne naredbe, koje su pomenute ranije):

Najkorisnija primena svih ovih mogućnosti je traženje i ispravljanje grešaka u programu. Ako program ne radi ono što ti očekuješ, izvršavanje deo po deo i gledanje vrednosti promenljivih može da ti pomogne da otkriješ zašto nastaje greška i kako da otkloniš njen uzrok.

Ispravljanjem grešaka ćemo se baviti u narednim lekcijama. Ovde samo isprobavamo "koračanje kroz program" da bismo detaljnije razumeli kako se naredbe izvršavaju (i da bismo se pripremili za buduće traženje grešaka).

Mi smo izvršili program naredbu po naredbu pritiscima na F7. U sledećoj animaciji možeš da vidiš kako su izgledale vrednosti promenljivih nakon svake izvršene naredbe.

| Animacija postepenog izvršavanja programa | |:-: | https://www.youtube.com/watch?v=U8j_wK90YDg&feature=youtu.be

Možda te zbunjuje:

  • Kad program počne da radi, u promenljivama su neki čudni brojevi (na primer 4309664, ili bilo koji). To je zato što se u promenljivama uvek nešto nalazi - ne postoji način da ih "ispraznimo". Računar tako radi. Ovo ne predstavlja nikakav problem dok god svakoj promenljivoj prvo postavljamo vrednost, pa je tek onda koristimo dalje u programu, kao što smo i radili. Čim se nekoj promenljivoj dodeli vrednost, čudni brojevi nestaju i program radi normalno. Bilo bi loše da pokušamo da koristimo promenljive kojima nismo postavili vrednost - mogli bismo da dobijemo čudne brojeve kao rezultat ili bi program mogao da prekine izvršavanje.

  • Kada izvršavanje stigne do poslednje naredbe, još jednim pritiskom na F7 prelazimo na kraj:

_Ako slučajno stigneš dovde, samo pritisni Shift-F8** 

(ili nekoliko puta F7) i program će se završiti._