DDD - Data Display Debugger

18. 5. 1999on-line novΘ okno dom∙ p°edchozφ Φlßnek nßsledujφcφ Φlßnek

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.

Obrßzek 1 - ddd v akci

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


on-line novΘ okno dom∙ p°edchozφ Φlßnek nßsledujφcφ Φlßnek