Hlavní navigace

DDD - Data Display Debugger

Leoš Literák

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

Našli jste v článku chybu?
DigiZone.cz: Recenze Westworld: zavraždit a...

Recenze Westworld: zavraždit a...

Podnikatel.cz: Změny v cestovních náhradách 2017

Změny v cestovních náhradách 2017

Lupa.cz: Kdo pochopí vtip, může jít do ČT vyvíjet weby

Kdo pochopí vtip, může jít do ČT vyvíjet weby

Podnikatel.cz: K EET. Štamgast už peníze na stole nenechá

K EET. Štamgast už peníze na stole nenechá

Lupa.cz: Teletext je „internetem hipsterů“

Teletext je „internetem hipsterů“

Root.cz: Certifikáty zadarmo jsou horší než za peníze?

Certifikáty zadarmo jsou horší než za peníze?

Měšec.cz: U levneELEKTRO.cz už reklamaci nevyřídíte

U levneELEKTRO.cz už reklamaci nevyřídíte

120na80.cz: Co všechno ovlivňuje ženskou plodnost?

Co všechno ovlivňuje ženskou plodnost?

Vitalia.cz: Mondelez stahuje rizikovou čokoládu Milka

Mondelez stahuje rizikovou čokoládu Milka

Vitalia.cz: Potvrzeno: Pobyt v lese je skvělý na imunitu

Potvrzeno: Pobyt v lese je skvělý na imunitu

Podnikatel.cz: Podnikatelům dorazí varování od BSA

Podnikatelům dorazí varování od BSA

Vitalia.cz: Když přijdete o oko, přijdete na rok o řidičák

Když přijdete o oko, přijdete na rok o řidičák

Podnikatel.cz: Snížení DPH na 15 % se netýká všech

Snížení DPH na 15 % se netýká všech

Podnikatel.cz: Chtějte údaje k dani z nemovitostí do mailu

Chtějte údaje k dani z nemovitostí do mailu

Měšec.cz: Air Bank zruší TOP3 garanci a zdražuje kurzy

Air Bank zruší TOP3 garanci a zdražuje kurzy

Vitalia.cz: Paštiky plné masa ho zatím neuživí

Paštiky plné masa ho zatím neuživí

Vitalia.cz: Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

120na80.cz: Horní cesty dýchací. Zkuste fytofarmaka

Horní cesty dýchací. Zkuste fytofarmaka

Lupa.cz: Insolvenční řízení kvůli cookies? Vítejte v ČR

Insolvenční řízení kvůli cookies? Vítejte v ČR

Měšec.cz: Zdravotní a sociální pojištění 2017: Připlatíte

Zdravotní a sociální pojištění 2017: Připlatíte