$$ \newcommand{\floor}[1]{\left\lfloor{#1}\right\rfloor} \newcommand{\ceil}[1]{\left\lceil{#1}\right\rceil} \newcommand{\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{\mmin}{\,\mathrm{\frac{m}{min}}} \newcommand{\smin}{\,\mathrm{\frac{s}{min}}} $$
Priručnik za početnike (C++) / Postepeno izvršavanje programa

Postepeno izvršavanje programa

  • Dozvoljeno polaganje
  • Lekcije
  • Nema
  • Vugdelija
  • 7/23/2015

Program ne moraš da izvršiš u celini, već možeš da po volji zaustaviš izvršavanje na bilo kojoj njegovoj naredbi. Ima nekoliko načina da to uradiš:

  • Možeš da zadaš mesto na kome će se tvoj program uvek zaustavljati, čak i ako ga pokreneš sa F5 (kao kad želiš da se izvrši ceo). Takvo mesto se zove tačka prekida (engl. breakpoint) i označeno je crvenim krugom, kao na slici.

 

Tačka prekida se postavlja tako što dovedeš kursor u željenu liniju koda i pritisneš F9, ili još jednostavnije - klikneš mišem na sivi deo ispred linije na koju želiš da postaviš tačku prekida (tamo gde se i pojavljuje oznaka). Ponavljanjem ovog postupka uklanjaš tačku prekida.

 

Savet: ovako možeš da zaustaviš izvršavanje neposredno pred kraj programa (kao na slici) i vidiš šta program ispisuje a da ne napuštaš radno okruženje i ne kucaš dodatne naredbe.

 

 

  • Ako želiš da izvršiš samo jednu naredbu, pritisni taster F10, 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 Ctrl-F10

(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 zadržiš kursor na imenu promenljive. Njena vrednost će se ubrzo pojaviti u malom pomoćnom prozoru, kao na sledećoj slici.

 

Savet: ovako možeš da bolje razumeš kako program radi.

 

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-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 F10, 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 F5, 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-F5. Istu ulogu ima dugme sa crvenim kvadratom ("Stop debugging" 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 F10. U sledećoj animaciji možeš da vidiš kako su izgledale vrednosti promenljivih nakon svake izvršene naredbe.

 

 

Možda te zbunjuje:

  • Kad program počne da radi, u promenljivama su neki čudni brojevi (na primer -858993460, 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š jednom pritiskom na F10 prelazimo na neke čudne naredbe:

F10

 

Ništa strašno, upali smo u program koji izvršava naš program (šta god to značilo). Ako slučajno stigneš dovde, samo pritisni F5 (ili nekoliko puta F10) i program će se završiti.