V sobotu 2. listopadu proběhla mohutná oslava naší plnoletosti !!
Multimediaexpo.cz je již 18 let na českém internetu !!
V tiskové zprávě k 18. narozeninám brzy najdete nové a zásadní informace.

Debugger

Z Multimediaexpo.cz

Verze z 28. 2. 2011, 09:43; Sysop (diskuse | příspěvky)
(rozdíl) ← Starší verze | zobrazit aktuální verzi (rozdíl) | Novější verze → (rozdíl)

Debugger je počítačový program, který se používá pro nalézání chyb v jiných programech. Většinou je možné zobrazit zdrojový kód laděného programu, takže je ihned možné vidět místo, kde se objevila programátorská chyba.

Většina vývojových prostředí má integrovaný debugger, případně se připojuje na externě spuštěný nezávislý debugger, takže je možné ladit program ve stejném oknu, ve kterém se vyvíjí samotný program. To velmi urychluje vývojový cyklus softwaru.

Debugger se také používá při crackingu pro pochopení jak program pracuje, pak je možné odstranit například ochranu proti kopírování nebo vytvořit mod do hry.

Principy debuggerů

Pokud se ladí program přímo pro počítač, na kterém se ladí (tzv. nativní kód), provádí program CPU počítače. V tom případě debugger automaticky před spuštěním mírně modifikuje program přidáním vlastních ladicích informací, aby bylo možné program za běhu přerušit.

Debugger je možné spustit jako modifikovaný emulátor, takže se veškerá činnost simuluje. Toho se využívá například při ladění programů pro mikročipy, přičemž se činnost mikročipu emuluje na osobním počítači. Toho se využívá i pokud se ladí interpretované programy (například v jazyku Java nebo Python), je debugger zakomponován do interpreteru nebo virtuálního stroje daného jazyka.

Ladicí proces

Programátor, který ladí program, může zvolit situaci, při které se provádění programu pozastaví. Tato situace může být například určité místo programu (tzv. breakpoint), vyvolání výjimky, čtení nebo zápis do určité proměnné, přístup k hardware apod. Na zastaveném programu je možné zkoumat stav procesu: obsah paměti, hodnoty na zásobníku, objektové závislosti, a z nich usuzovat, proč k chybě v programu dochází. Po odstranění chyby je většinou nutné program ladit znovu.

Související články