next up previous
Next: Sklad,brez`` max_Sklad Up: Vaje 18 Previous: Vaje 18

DEBUG

Debug ali razhroščevanje. Zgodovina Debug-a:

Ta izraz se je rodil leta 1948. Takrat so bili računalniki narejeni še iz elektronk. Elektronke pa delajo na 3 oz. 5-ih voltih, včasih pa so delali na 100-ih voltih. V tistem času so naredili program, ki je zmeraj delal narobe ( dajal je napačne rezultate ). Nekdo je šel pogledat, če je kaj narobe z računalnikom in med žicami so našli majhnega hrošča. In zato se to imenuje debug oz. razhroščevalnik.
Namen debuggiranja je, da poiščemo napako v programu. S testiranjem preverimo, če je program pravilen. Če ni takih napak, da se program vsaj prevede, preizkusimo, če nam npr. pravilno odšteva. Če ugotovimo napake v funkcijah, si pomagamo z delnimi rezultati tako, da jih izpisujemo.

PRIMER: Kako najdemo napako pri programu ART.C?

To naredimo tako, da program najprej prevedemo v knjižnico. Potem gremo pogledat še testen program TESTART.C. Naredimo projekt in napišemo TESTART ter mu dodamo osnovni in objektni program. Potem pa prevedemo v standard. Napisali smo:

V123
V456
S
I
računalnik izpiše: 579.

Naredili smo še nekaj preizkusov. Radi pa bi ugotovili, kaj je narobe.

Npr. po scanf se želimo ustaviti. To naredimo tako, da gremo na Debug, potem izberemo Toggle breakpoint oz. Ctrl+F8.

Watches izpisuje vrednost in v programu so razne spremenljivke, ki lahko opazuješ kako se spreminjajo.

Toggle breakpoint ko izbereš vrstico, se vrstica rdeče obarva in program bo tekel toliko časa, dokler ne pride do te vrstice. Potem te bo vprašal, kaj hočeš.

breakpoints posredujeje spisek vseh točk, kjer se bo Debug ustavil.

V 100 - program se ustavi, kjer smo prej zahtevali (nastavili).

Radi bi pogledali, če je vrednost 100 v resnici vpisana.

Gremo na:

Še drugi način: F8 pomeni, da izvajamo program korakoma - vrstica za vrstico. Pritisnemo F8 in se prestavimo, potem Debug, Inspect in napišemo stev1, potem vnesemo še stev2. Potem spet pritisnemo F8. Ševili seštejemo.

Potem gremo na Run, napišemo I, vendar se še ne bo izpisalo.

V123 Ctrl+F9
V222 Ctrl+F9
O Ctrl+F9
I
Izpiše nam pravilen rezultat 99.

Radi bi pogledali, kako program dela:

ali F7 in smo v programu. Lahko pogledamo kakšni sta num1 in num2. To naredimo tako, da gremo na: V Inspect-u napišemo num1 in Enter ter vidimo, da je num1 enako 212. Potem naredimo isto še za num2 in vidimo, da je num2 enako 131. Potem gremo korak naprej z F8.

Predznak števila ugotovimo tako, da gremo na:

in isto naredimo za num2.

Radi bi videli, kako bi delala funkcija ABSVecje. Gremo na Run in potem na Trace (oziroma F7). Pogledali smo vrednost po že znani poti, num1, num2, stevec v funkciji ABSVecje.

Pri for (stevec) smo postavili Toggle breakpoint - ustavi se, kjer je bila prekinitvena točka.

Vsak program ima za razhroščevanje vsaj 3 ukaze:

Run
- izvajaj naprej
Step
- izvedi eno vrstico
Trace
- izvedi naslednjo vrstico, ki je lahko v podprogramu

Poleg teh pa še ukaz Watch, ki je v povezavi z Inspect.

Ugotovili smo tudi, da ima naš program eno napako pri odštevanju. To napako moramo poiskati.


next up previous
Next: Sklad,brez`` max_Sklad Up: Vaje 18 Previous: Vaje 18

Andrej Brodnik (Andy)
Tue Mar 31 12:55:17 MET DST 1998