elektrotehniČki fakultet univerziteta u beogradu · debugger koja se zove stop debugger ili klikom...

25
ELEKTROTEHNIČKI FAKULTET UNIVERZITETA U BEOGRADU PROGRAMIRANJE 2 UPUTSTVO ZA UPOTREBU RAZVOJNOG OKRUŽENJA CODELITE verzija: 26.03.2018.

Upload: others

Post on 25-Feb-2020

2 views

Category:

Documents


0 download

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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.