elektrotehniČki fakultet univerziteta u beogradu · debugger koja se zove stop debugger ili klikom...
TRANSCRIPT
![Page 1: ELEKTROTEHNIČKI FAKULTET UNIVERZITETA U BEOGRADU · Debugger koja se zove Stop debugger ili klikom na crveni kvadrat na paleti dugmića iznad prozora za editovanje koda. Nakon ovoga,](https://reader033.vdocuments.pub/reader033/viewer/2022041817/5e5b68848176696cc4596aa8/html5/thumbnails/1.jpg)
ELEKTROTEHNIČKI FAKULTET UNIVERZITETA U BEOGRADU
PROGRAMIRANJE 2
UPUTSTVO ZA UPOTREBU
RAZVOJNOG OKRUŽENJA CODELITE
verzija: 26.03.2018.
![Page 2: ELEKTROTEHNIČKI FAKULTET UNIVERZITETA U BEOGRADU · Debugger koja se zove Stop debugger ili klikom na crveni kvadrat na paleti dugmića iznad prozora za editovanje koda. Nakon ovoga,](https://reader033.vdocuments.pub/reader033/viewer/2022041817/5e5b68848176696cc4596aa8/html5/thumbnails/2.jpg)
Sadržaj
1. Instalacija ........................................................................................................ 3
1.1. Instalacija okruženja ................................................................................... 3
1.2. Instalacija prevodioca za jezik C .................................................................. 6
2. Rad sa okruženjem ......................................................................................... 11
2.1. Kreiranje radnog prostora i projekta .......................................................... 11
2.2. Prevođenje projekta ................................................................................. 14
2.3. Pokretanje projekta .................................................................................. 15
2.4. Otklanjanje grešaka (Debugging) .............................................................. 17
![Page 3: ELEKTROTEHNIČKI FAKULTET UNIVERZITETA U BEOGRADU · Debugger koja se zove Stop debugger ili klikom na crveni kvadrat na paleti dugmića iznad prozora za editovanje koda. Nakon ovoga,](https://reader033.vdocuments.pub/reader033/viewer/2022041817/5e5b68848176696cc4596aa8/html5/thumbnails/3.jpg)
1. Instalacija U ovom poglavlju biće opisan postupak instalacije okruženja CodeLite.
1.1. Instalacija okruženja
Instalaciju je prvo potrebno preuzeti sa zvaničnog sajta (https://codelite.org/).
![Page 4: ELEKTROTEHNIČKI FAKULTET UNIVERZITETA U BEOGRADU · Debugger koja se zove Stop debugger ili klikom na crveni kvadrat na paleti dugmića iznad prozora za editovanje koda. Nakon ovoga,](https://reader033.vdocuments.pub/reader033/viewer/2022041817/5e5b68848176696cc4596aa8/html5/thumbnails/4.jpg)
Na sledećoj stranici je potrebno izabrati verziju u zavisnosti od toga da li je na računaru
instaliran 64bitni ili 32bitni operativni sistem.
Nakon preuzimanja arhive u kojoj se nalazi instalacija potrebno je raspakovati istu.
Nakon što se raspakuje pojaviće se egzekutiva i instalacija se pokreće dvoklikom na istu. Sama
instalacija je jednostavna. Potrebno je izabrati folder u koji će biti smešteno CodeLite
okruženje (najbolje je ostaviti destinaciju koja je ponuđena). Nakon instalacije, CodeLite
okruženje se pokreće ili dvoklikom na ikonicu na desktopu ili iz start menija. Nakon pokretanja
CodeLite okruženja biće prikazan sledeći prozor.
![Page 5: ELEKTROTEHNIČKI FAKULTET UNIVERZITETA U BEOGRADU · Debugger koja se zove Stop debugger ili klikom na crveni kvadrat na paleti dugmića iznad prozora za editovanje koda. Nakon ovoga,](https://reader033.vdocuments.pub/reader033/viewer/2022041817/5e5b68848176696cc4596aa8/html5/thumbnails/5.jpg)
Naredni korak jeste podešavanje okruženja. Za podešavanje okruženja postoji Wizard
koji sprovodi kompletan postupak podešavanja. Klikom na dugme Next pojaviće se prozor na
kojem je potrebno izabrati profil CodeLight okruženja. Na kursu Programrinje 2 se radi sa
jezikom C tako da ja potrebno izabrati profil C/C++ development.
![Page 6: ELEKTROTEHNIČKI FAKULTET UNIVERZITETA U BEOGRADU · Debugger koja se zove Stop debugger ili klikom na crveni kvadrat na paleti dugmića iznad prozora za editovanje koda. Nakon ovoga,](https://reader033.vdocuments.pub/reader033/viewer/2022041817/5e5b68848176696cc4596aa8/html5/thumbnails/6.jpg)
Naredni prozor zahteva da se izabere prevodilac koji će se koristi za prevođenje
programa napisanih na C-u. Najpre je potrebno proveriti da li postoji instalirani prevodilac na
računaru klikom na opciju Scan. Ukoliko postoji, sledeći deo koji se tiče instalacije prevodioca
može da se preskoči.
1.2. Instalacija prevodioca za jezik C
Ukoliko ne postoji prevodilac za jezik C na računaru, biće prikazana sledeća poruka.
![Page 7: ELEKTROTEHNIČKI FAKULTET UNIVERZITETA U BEOGRADU · Debugger koja se zove Stop debugger ili klikom na crveni kvadrat na paleti dugmića iznad prozora za editovanje koda. Nakon ovoga,](https://reader033.vdocuments.pub/reader033/viewer/2022041817/5e5b68848176696cc4596aa8/html5/thumbnails/7.jpg)
U ovom slučaju potrebno potrebno je instalirati prevodilac, tako da se procedura
nastavlja klikom na dugme Yes. Na narednom prozoru je potrebno izabrati odgovarajuću
verziju prevodioca. Ukoliko je na računaru instaliran 32bitni operativni sistem potrebno je
izabrati prvu opciju, a u slučaju da je instaliran 64bitni operativni sistem potrebno je izabrati
drugu opciju.
Nakon ovoga biće prikazana stranica sa koje je potrebno preuzeti instalaciju prevodioca.
U ovom slučaju to je stranica SourceForge. Nakon što se preuzme instalacija za prevodilac
potrebno ju je pokrenuti. Biće prikazan sledeći prozor.
![Page 8: ELEKTROTEHNIČKI FAKULTET UNIVERZITETA U BEOGRADU · Debugger koja se zove Stop debugger ili klikom na crveni kvadrat na paleti dugmića iznad prozora za editovanje koda. Nakon ovoga,](https://reader033.vdocuments.pub/reader033/viewer/2022041817/5e5b68848176696cc4596aa8/html5/thumbnails/8.jpg)
Potrebno je kreirati novi prevodilac klikom na dugme Create. Nakon toga se otvara
prozor za odabir odgovarajuće verzije prevodioca. Kao i u slučaju okruženja, verziju se bira u
zavisnosti od operativnog Sistema koji je instaliran na računaru, odnosno u zavisnosti od toga
da li je instaliran 32bitni operativni sistem ili 64bitni operativni sistem.
![Page 9: ELEKTROTEHNIČKI FAKULTET UNIVERZITETA U BEOGRADU · Debugger koja se zove Stop debugger ili klikom na crveni kvadrat na paleti dugmića iznad prozora za editovanje koda. Nakon ovoga,](https://reader033.vdocuments.pub/reader033/viewer/2022041817/5e5b68848176696cc4596aa8/html5/thumbnails/9.jpg)
Nakon odabira potrebno je kliknuti na dugme Next i ostatak instalacije je pravolinijski.
Kada se instalacija završi ponovo će biti prikazan prozor koji je se otvorio prilikom pokretanja
okruženja. Ponovo je potrebno kliknuti na dugme Scan da bi CodeLite okruženje pretražilo
računar za prevodiocem za jezik C.
Nakon pretrage biće prikazana lista svih dostupnih prevodioca na našem računaru.
Potrebno je izabrati jedan, a u ovom slučaju jedan jedini koji je instaliran.
![Page 10: ELEKTROTEHNIČKI FAKULTET UNIVERZITETA U BEOGRADU · Debugger koja se zove Stop debugger ili klikom na crveni kvadrat na paleti dugmića iznad prozora za editovanje koda. Nakon ovoga,](https://reader033.vdocuments.pub/reader033/viewer/2022041817/5e5b68848176696cc4596aa8/html5/thumbnails/10.jpg)
Nakon ovoga potrebno je podesiti ostatak okruženja. U ova podešavanj spadaju odabir
teme i sl. i to neće biti razmatrano u ovom uputstvu. Sada kada je CodeLite okruženje
podešeno prelazimo na rad sa njim.
![Page 11: ELEKTROTEHNIČKI FAKULTET UNIVERZITETA U BEOGRADU · Debugger koja se zove Stop debugger ili klikom na crveni kvadrat na paleti dugmića iznad prozora za editovanje koda. Nakon ovoga,](https://reader033.vdocuments.pub/reader033/viewer/2022041817/5e5b68848176696cc4596aa8/html5/thumbnails/11.jpg)
2. Rad sa okruženjem U ovo poglavlju biće opisan način na koji se koristi CodeLite okruženje.
2.1. Kreiranje radnog prostora i projekta
Kada se CodeLite okruženje pokrene dobiće se sledeći prikaz.
Prvo je potrebno napraviti novi radni proctor (Workspace) klikom na opciju New
Workspace. Nakon klika na ovu opciju otvara se prozor u kome je potrebno uneseti naziv
našeg radnog prostora. Naravno, po potrebi može se promeniti destinaciju na kojoj će biti
smešten radni prostor. Na kraju potrebno je kliknuti na dugme OK.
![Page 12: ELEKTROTEHNIČKI FAKULTET UNIVERZITETA U BEOGRADU · Debugger koja se zove Stop debugger ili klikom na crveni kvadrat na paleti dugmića iznad prozora za editovanje koda. Nakon ovoga,](https://reader033.vdocuments.pub/reader033/viewer/2022041817/5e5b68848176696cc4596aa8/html5/thumbnails/12.jpg)
Nakon što se napravi novi radni prostor potrebno je napraviti novi projekat. To se
postiže desnim klikom na folder koji se nalazi u koloni sa leve strane. Nakon toga potrebno je
izabrati opciju New pa opciju New Project.
Nakon ovoga otvoriće se novi prozor za izbor tipa projekta. U ovom slučaju potrebna je
konzolna aplikcija (Console) i opcija sa gcc kompajlerom. Nakon ovog potrebno je kliknuti na
dugme Next.
![Page 13: ELEKTROTEHNIČKI FAKULTET UNIVERZITETA U BEOGRADU · Debugger koja se zove Stop debugger ili klikom na crveni kvadrat na paleti dugmića iznad prozora za editovanje koda. Nakon ovoga,](https://reader033.vdocuments.pub/reader033/viewer/2022041817/5e5b68848176696cc4596aa8/html5/thumbnails/13.jpg)
Nakon toga potrebno je da projektu damo ime i, ukoliko je to potrebno, da promenimo
lokaciju na kojoj će on biti smešten. Kada to odradimo kliknemo na dugme Next. Nakon toga
biće otvoren prozor sa podešavanjima prevodioca. Ova podešavanja nećemo menjati. Kreiranje
novog projekta se završava klikom na dugme Finish.
![Page 14: ELEKTROTEHNIČKI FAKULTET UNIVERZITETA U BEOGRADU · Debugger koja se zove Stop debugger ili klikom na crveni kvadrat na paleti dugmića iznad prozora za editovanje koda. Nakon ovoga,](https://reader033.vdocuments.pub/reader033/viewer/2022041817/5e5b68848176696cc4596aa8/html5/thumbnails/14.jpg)
2.2. Prevođenje projekta
Svaki projekat nakon kreiranja sadrži samo jedan fajl koji se zove main.c. U njemu se
nalazi gotov “Hello world” primer. Da bi preveli projekat, potrebno je kliknuti na meni Build i
odabrati opciju Build Project. Ova opcija ima prečicu pa se isti efekat može postići pritiskom
na taster F7.
Nakon toga prevođenje projekta i izveštaj o prevođenju će biti prikazan na prozoru u
dnu ekrana u kartici Build.
![Page 15: ELEKTROTEHNIČKI FAKULTET UNIVERZITETA U BEOGRADU · Debugger koja se zove Stop debugger ili klikom na crveni kvadrat na paleti dugmića iznad prozora za editovanje koda. Nakon ovoga,](https://reader033.vdocuments.pub/reader033/viewer/2022041817/5e5b68848176696cc4596aa8/html5/thumbnails/15.jpg)
Kao što se može videte iz izveštaja, prilikom prevođenja projekta nije detektovana
nijedna greška.
2.3. Pokretanje projekta
Nakon usprešnog prevođenja, dati projekat se može pokrenuti. Ovo se postiže
otvaranjem menija Build i odabirom opcije Run. Za ovu opcija postoji prečicu tako da se isti
efekat može postići pritiskom CTRL i F5 tastera u isto vreme.
![Page 16: ELEKTROTEHNIČKI FAKULTET UNIVERZITETA U BEOGRADU · Debugger koja se zove Stop debugger ili klikom na crveni kvadrat na paleti dugmića iznad prozora za editovanje koda. Nakon ovoga,](https://reader033.vdocuments.pub/reader033/viewer/2022041817/5e5b68848176696cc4596aa8/html5/thumbnails/16.jpg)
Nakon odabira opcije Run okruženje će prikazati prozor u kojem pita da li želimo da
ponovo prevedemo projekat pre pokretanja ili samo da ga pokrenemo. Možemo izabrati bilo
koju od ove dve opcije.
Nakon pokretanja projekta biće prikazan prozor u kojem će biti ispisana poruka i vreme
koje bilo potrebno projektu da se izvrši. Da bi se prozor zatvorio potrebno je da pritisnuti neki,
bilo koji, taster.
![Page 17: ELEKTROTEHNIČKI FAKULTET UNIVERZITETA U BEOGRADU · Debugger koja se zove Stop debugger ili klikom na crveni kvadrat na paleti dugmića iznad prozora za editovanje koda. Nakon ovoga,](https://reader033.vdocuments.pub/reader033/viewer/2022041817/5e5b68848176696cc4596aa8/html5/thumbnails/17.jpg)
2.4. Detekcija i otklanjanje grešaka (Debugging)
CodeLite, kao i svako drugo okruženje, sadrži alata za detekciju i otklanjanje grešaka.
Ovaj alat se naziva debugger. Da bi se demonstrirala upotreba ovog alata potrebno je
napisati malo složeniji program od onog koji je dobijen nakon kreiranja projekta. Tako da će u
tu svrhu biti napisan program koji sumira odgovarajuće elemente dva niza i njihove sume
smešta u treći niz. Zbir dva člana niza biće realizovan kao afunkciju da bi se deomstrirale i
opcije koje pruža debugger za detekciju i otklanjanje grešaka u funkcijama. Kod ovog
programa dat je na sledećoj slici.
![Page 18: ELEKTROTEHNIČKI FAKULTET UNIVERZITETA U BEOGRADU · Debugger koja se zove Stop debugger ili klikom na crveni kvadrat na paleti dugmića iznad prozora za editovanje koda. Nakon ovoga,](https://reader033.vdocuments.pub/reader033/viewer/2022041817/5e5b68848176696cc4596aa8/html5/thumbnails/18.jpg)
Kao što se može da videte sa slike, u kodu postoji greška. Funkcija add vraća razliku
dva cela broja, a ne njihov zbir kakva je bila inicijalna namena. Iako je greška trivijalna, ona će
biti iskorišćena za demonstraciju rada sa debugger-om.
Ovaj alat pruža mogućnost izvrašavanja koda liniju po liniju uz mogućnost praćenja
vrednosti promenljivih iz našeg koda. U ovom slučaju projekat je potrebno pokrenuti u debug
režimu rada. Naravno, ne mora se izvršiti svaka linija već samo onaj deo koda u kojem
sumnjamo da se nalazi greška. Za ovo je potrebno zaustaviti izvršavanje projekta kada ono
dostigne deo koda od interesa. Da bi se izvršvanje zaustavilo na željenoj linija koda mora se
postaviti breakpoint. Na levoj ivici prozora za editovanje koda (leva ivica centralnog prozora)
postoji numeracija linija gde je svakoj liniji dodeljen redni broj.
![Page 19: ELEKTROTEHNIČKI FAKULTET UNIVERZITETA U BEOGRADU · Debugger koja se zove Stop debugger ili klikom na crveni kvadrat na paleti dugmića iznad prozora za editovanje koda. Nakon ovoga,](https://reader033.vdocuments.pub/reader033/viewer/2022041817/5e5b68848176696cc4596aa8/html5/thumbnails/19.jpg)
Ukoliko se želi zaustaviti izvršavanje na određenoj liniji ono što je potrebno uraditi jeste
kliknemo ispred te brojke. Tada će se na toj lokaciji, odnosno liniji koda, pojaviti crveni krug
koji predstavlja dati breakpoint. Recimo da je to linija na kojoj se nalazi for petlja u kojoj se
sumiraju članovi prvog i drugog niza. Nakon klika dobiće se sledeći izgled prozora.
Sada je potrebno pokrenuti projekat u debug režimu rada. Ovo se postiže klikom na
meni Debugger i odabirom opcije Start/Continue Debugging.
![Page 20: ELEKTROTEHNIČKI FAKULTET UNIVERZITETA U BEOGRADU · Debugger koja se zove Stop debugger ili klikom na crveni kvadrat na paleti dugmića iznad prozora za editovanje koda. Nakon ovoga,](https://reader033.vdocuments.pub/reader033/viewer/2022041817/5e5b68848176696cc4596aa8/html5/thumbnails/20.jpg)
Nakon toga, projekat će biti pokrenut u datom režimu i izvršavaće se normalno sve dok
se ne dostigne linija na kojoj se nalazi breakpoint. Odnosno, deo koda za unos elemenata
prvog i drugog niza će se izvršiti normalno. Kada se izvršavanje dostigne breakpoint dobiće
se sledeći prikaz.
![Page 21: ELEKTROTEHNIČKI FAKULTET UNIVERZITETA U BEOGRADU · Debugger koja se zove Stop debugger ili klikom na crveni kvadrat na paleti dugmića iznad prozora za editovanje koda. Nakon ovoga,](https://reader033.vdocuments.pub/reader033/viewer/2022041817/5e5b68848176696cc4596aa8/html5/thumbnails/21.jpg)
Zelena strelica koja se nalazi desno od rednog broja linije pokazuje do kog dela koda je
stiglo izvršavanje. Pored toga, u donjem desnom uglu biće otvoren prozor pomoću kojeg se
može pratiti stanje promenljivih u našem kodu. U ovom prozoru biće izlistane sve promenljive
koje smo deklarisali u kodu i u njemu se može videti njihova trenutna vrednost, odnosno
trenutno stanje. Na primer, kada bismo želeli da vidimo sadržaj niza a morali bi da kliknemo
na plus pored slova a u datom prozoru i dobili bismo sadržaj datog niza.
Pored naziva niza data je i njegova dužina i njegov tip. Odmah ispod naziva dati su sami
elementi niza. Odavde vidimo da privi element ima vrednost 1, drugi vrednost 2 itd. Kad
izvrašavanje signe do breakpoint-a nadalje se može nastaviti na dva načina. Prvi je da
pomoću iste opcije koja pokreće projekat u debug režimu rada, izvrašavanje nastavi normalno
što nije od interesa jer bi se tako preskočilo izvršavanje funckije u kojoj se nalazi greška. Drugi
način nastavlja sa izvršavanja instrukciju po instrukciju i za njega postoje dve opcije u
Debugger meniju i one su Step Into i Next.
![Page 22: ELEKTROTEHNIČKI FAKULTET UNIVERZITETA U BEOGRADU · Debugger koja se zove Stop debugger ili klikom na crveni kvadrat na paleti dugmića iznad prozora za editovanje koda. Nakon ovoga,](https://reader033.vdocuments.pub/reader033/viewer/2022041817/5e5b68848176696cc4596aa8/html5/thumbnails/22.jpg)
Obe opcije izvršavaju instrukciju po instrukciju, međutim kada se stigne do poziva
funkcije ukoliko je izabrana opcija Next data funkcija će se izvršiti normalno i izvršavanje će
nastaviti od instrukcije nakon poziva funkcije. Ukoliko izaberemo Step Into izvršavanje će
nastaviti od prve instrukcije date funkcije. Nama je potrebna druga opcija, odnosno opcija
Step Into, tako da ćemo najpre dovesti izvršavanje do linije na kojoj se poziva funkcija
pomoću Next opcije, a zatim sa Step Into opcijom preći na izvršavanje koda same funkcije.
![Page 23: ELEKTROTEHNIČKI FAKULTET UNIVERZITETA U BEOGRADU · Debugger koja se zove Stop debugger ili klikom na crveni kvadrat na paleti dugmića iznad prozora za editovanje koda. Nakon ovoga,](https://reader033.vdocuments.pub/reader033/viewer/2022041817/5e5b68848176696cc4596aa8/html5/thumbnails/23.jpg)
Nakon prelaska na prvu instrukciju funkcije, klikom na dugme refresh u prozoru za
prikaz promenljivih se može primetiti mala promena. S obzirom da je izvršavanje prešlo na
funkciju i da se sada nalazi u njenom kontekstu, u datom prozoru se mogu videte argumenti
funkcije i njihove vrednosti kao što je prikazano na sledećoj slici.
Dalje opcijom Step Into nastavljama sa izvršavanjem do kraja funkcije i izlazimo iz nje.
U prozoru gde su prikazane lokalne promenljive postoji više kartica od kojih od
posebnog značaja kartica Watches. Ova kartica dozvoljava da se prate vrednosti proizvoljnih
izraza tokom izvrašavanja programa. Izraz se dodaje tako što se, nakon prelaska na karticu
Watches, klikne na zeleni plus.
![Page 24: ELEKTROTEHNIČKI FAKULTET UNIVERZITETA U BEOGRADU · Debugger koja se zove Stop debugger ili klikom na crveni kvadrat na paleti dugmića iznad prozora za editovanje koda. Nakon ovoga,](https://reader033.vdocuments.pub/reader033/viewer/2022041817/5e5b68848176696cc4596aa8/html5/thumbnails/24.jpg)
Nakon ovoga se otvora prozor u kojem se može uneti izraz interesa. U izrazu mogu da
učestvuju konstante i promenljive, ali samo one promenljive iz tekućeg konteksta, u ovom
slučaju samo promenljive iz glavnog programa. Unećemo tri izraza i to a[i], b[i] i c[i] da bi
videli koja se vrednost dobila nakon poziva funkcije, gde je i kontrolna promenljiva for petlje.
![Page 25: ELEKTROTEHNIČKI FAKULTET UNIVERZITETA U BEOGRADU · Debugger koja se zove Stop debugger ili klikom na crveni kvadrat na paleti dugmića iznad prozora za editovanje koda. Nakon ovoga,](https://reader033.vdocuments.pub/reader033/viewer/2022041817/5e5b68848176696cc4596aa8/html5/thumbnails/25.jpg)
Nakon unosa sva tri izraza možemo videte njih i njihove vrednosti u datom prozoru.
Iz ovoga možemo zaključiti da naša funkcija zapravo radi oduzimanje, a ne sabiranje
kao što je bili inicijalna zamisao. Debugg režim rada se prekida ili opcijom iz menija
Debugger koja se zove Stop debugger ili klikom na crveni kvadrat na paleti dugmića iznad
prozora za editovanje koda.
Nakon ovoga, greška se može ispraviti, tako da ćemo ispraviti našu funkciju i projekat
ponovo da vidimo da li radi ispravno.