18. 5. 1999 | ![]() ![]() ![]() ![]() ![]() |
Existuje axiom o programovßnφ, kter² tvrdφ, ╛e ka╛d² program mß nejmΘn∞ jednu chybu. Sßm jsem se o tom mnohokrßt p°esv∞dΦil. A a╛ ta chvφle nastane a chyba se projevφ, nastane pro programßtory nejhor╣φ okam╛ik - najφt ji. V takovΘm p°φpad∞ se hodφ n∞jak² debugger. Pod unixem je standardem gdb. Ale ne ka╛d² ocenφ jeho textov∞ orientovanΘ rozhranφ. Pro nßs pohodlnΘ na╣t∞stφ existuje ddd.
DDD je aplikace napsanß v Motifu (mφsto n∞j m∙╛ete pou╛φt LessTif). Program je vyvφjen na TechnickΘ univerzit∞ Braunsweig v N∞mecku a jeho domßcφ strßnka se nachßzφ na adrese http://www.cs.tu-bs.de/softech/ddd/. Mß docela p°φjemnΘ grafickΘ prost°edφ, jak se m∙╛ete p°esv∞dΦit na obrßzku 1. Licence je GPL. Krom∞ linuxu je podporovßna spousta dal╣φch variant unixu, testoval jsem i verzi na DEC Alpha.
Te∩ u╛ urΦit∞ chcete v∞d∞t, co to umφ. Jeliko╛ je to nßdstavba nad gdb,
pak totΘ╛, co gdb a n∞co navφc. Nap°φklad podpora Javy, Perlu,
Fortranu, Pythonu a dal╣φch. V²b∞r mezi r∙zn²mi debuggery - gdb,
jdb,
dbx,wdb
a dal╣φ. Okna s prom∞nn²mi, v²pisem zdrojovΘho k≤du a debuggerem. Dialogy
s registry, zßsobnφkem, ·sekem pam∞ti, vlßkny i signßly. Undo/Redo. Kreslenφ
historie hodnot vybranΘ prom∞nnΘ. Mo╛nost nadefinovat si vlastnφ p°φkazy
a tlaΦφtka. A mnoho dal╣φch zajφmavostφ.
Prßce s ddd
Po spu╣t∞nφ se nejprve nahraje spustiteln² soubor nebo core. Pokud se nenahraje
a nezobrazφ zdrojov² k≤d, musφte k n∞mu nastavit cestu v preferencφch.
Ty jsou mimochodem docela obsßhlΘ. Dal╣φm krokem je obvykle nastavenφ breakpoint∙
a displej∙ prom∞nn²ch. A to bu∩ p°es rozhranφ debuggeru (nap°φklad break
10) anebo my╣φ. Dvojklikem nastavφte breakpoint. Nebo po stisknutφ
pravΘho tlaΦφtka my╣i z menu. Nebo z li╣ty nßstroj∙. Breakpoint m∙╛ete
p°esunout pouh²m ta╛enφm my╣i. Nebo editovat jeho vlastnosti, jako jsou
podmφnka pro aktivaci Φi kolikrßt se mß ignorovat. Dv∞ma kliknutφmi m∙╛ete
breakpoint doΦasn∞ uspat.
Dal╣φm krokem b²vß spu╣t∞nφ. Samoz°ejmostφ je mo╛nost zadßnφ parametr∙ vΦetn∞ historie. Mo╛nostφ navφc je v²b∞r, zda se mß program spustit v xtermu nebo v Φßsti debuggeru. Pozastavit b∞h programu lze po stisknutφ tlaΦφtka Interrupt. Automaticky se zobrazφ Φßst k≤du, kde byl program zastaven. Pokud najedete my╣φ nad nßzev prom∞nnΘ, jejφ hodnota se zobrazφ jak na spodnφ li╣t∞, tak jako tooltip (voliteln∞). Pomocφ my╣i m∙╛ete takΘ vypsat nebo zobrazit jejφ hodnotu. P°φpadn∞ ji ·pln∞ zm∞nit.
Pokud je slo╛enß prom∞nnß zobrazena jako displej, m∙╛ete prochßzet jejφ souΦßsti do hloubky. Viz obrßzek 1 a zobrazenΘ pole t°φd Vrstva. Pokud se hodnota displeje zm∞nφ (nap°φklad p°i krokovßnφ cyklu), ddd vßs na to upozornφ zm∞nou barvy displeje. Pokud pracujete v cΘΦku s dynamicky alokovan²mi polemi, m∙╛ete takto odhalit chybnou prßci s pointry. StaΦφ nastavit breakpoint na zaΦßtek cyklu a maΦkat Cont. Pokud se t°eba nezm∞nφ barva na konci pole, aΦ m∞la, budete v∞d∞t, odkud se bere ta tajemnß chyba.
Na krokovßnφ slou╛φ p°φkazy Step, Stepi, Next,
Nexti.
Pokud nevφte, co tyto p°φkazy d∞lajφ, pom∙╛e vßm nßpov∞da ve form∞ tooltipu.
Pokud nevφte, co mßte d∞lat, nechte si poradit - menu Help - What
now? Pokud chcete zjistit, kdy se zm∞nφ hodnota n∞kterΘ prom∞nnΘ, nastavte
na ni Watch. Debugger pak p°eru╣φ b∞h programu. Dal╣φm p°φkazem
je Finish, kter² debugger nechß pokraΦovat program, dokud neopustφ
aktußlnφ funkci. P°φkazem Cont se pozastaven² program odblokuje
a ten bude pokraΦovat v Φinnosti.
Zßv∞r
Co °φci zßv∞rem? «e Data Display Debugger je velice zajφmav² produkt, kter²
m∙╛e ulehΦit prßci. Jeho p°φjemnΘ u╛ivatelskΘ rozhranφ i funkce velmi p°evy╣ujφ
konkurenΦnφ xxgdb. Chybφ mu snad jen integrovan² editor, prohlφ╛eΦ
funkcφ a t°φd, RAD nßstroje, integrace s manußlov²mi strßnkami a infem,
... Ale to je zatφm jen sen, kter² jsem na unixu je╣t∞ nikde nevid∞l. Nechce
se n∞kdo p°ipojit k v²vojß°∙m? Ka╛dopßdn∞ ale doporuΦuji k vyzkou╣enφ.
Leo╣ Literßk
literakl@seznam.cz
Linux Hardware
Autor: Leo╣ Literßk (jinΘ Φlßnky tohoto autora)
Sekce: Software
![]() ![]() ![]() ![]() ![]() |