Ladění je fází vývoje počítačového programu , ve které se zjišťují, lokalizují a eliminují chyby. Abyste pochopili, kde k chybě došlo, musíte:
Existují dvě doplňkové technologie ladění:
Typický vývojový cyklus, který se během životnosti programu mnohokrát opakuje, vypadá asi takto:
Ladění často vyžaduje vysokou kvalifikaci a značné zdroje. Schopnost programátora ladit je důležitým faktorem při hledání zdroje problému, ale obtížnost ladění je velmi závislá na použitém programovacím jazyce a nástrojích, zejména debuggerech .
Ladicí program je softwarový nástroj, který umožňuje programátorovi sledovat provádění zkoumaného programu, zastavovat jej a restartovat, spouštět jej zpomaleně, měnit hodnoty v paměti a v některých případech se dokonce vrátit v čase.
Také užitečné nástroje v rukou programátora mohou být:
Používání vysokoúrovňových programovacích jazyků obvykle usnadňuje ladění, pokud takové jazyky obsahují například zařízení pro zpracování výjimek, díky nimž je mnohem snazší najít zdroj problému. V nízkoúrovňových jazycích mohou chyby vést k jemným problémům, jako je poškození paměti a úniky paměti . Pak může být docela obtížné určit, co bylo původní příčinou chyby. V těchto případech mohou být vyžadovány složité techniky a nástroje pro ladění.
„Naší osobní volbou je pokusit se nepoužívat debuggery, s výjimkou zobrazení zásobníku volání nebo hodnot několika proměnných . Jedním z důvodů je, že je velmi snadné se ztratit v detailech složitých datových struktur a cest provádění programů. Procházení programu považujeme za méně produktivní než usilovné přemýšlení a kontrolu kódu v kritických bodech.
Kliknutí na operátory zabere více času než prohlížení zpráv operátorů pro vydávání ladicích informací umístěných na kritických místech. Je rychlejší rozhodnout se, kam umístit ladicí příkaz, než procházet kritickými částmi kódu, a to i za předpokladu, že víme, kde tyto části jsou. Ještě důležitější je, že příkazy ladění jsou v programu zachovány a relace ladicího programu jsou přechodné.
Slepé bloudění v debuggeru je s největší pravděpodobností neproduktivní. Je užitečnější použít debugger, abyste zjistili stav programu, ve kterém dělá chybu, a pak se zamyslete nad tím, jak by takový stav mohl nastat. Debuggery mohou být složité a matoucí programy, zejména pro začátečníky, pro které budou spíše matoucí než užitečné ... “
„Ladění je těžké a může trvat nepředvídatelně dlouho, takže cílem je většinu toho obejít. Techniky, které mohou pomoci zkrátit dobu ladění, zahrnují dobrý design, dobrý styl , kontrolu hraničních podmínek, validaci počátečních tvrzení a přiměřenosti kódu, defenzivní programování , dobře navržená rozhraní, omezené použití globálních proměnných, automatické kontroly a kontroly. Unce prevence stojí za tunu léčby."
— Brian Kernighan a Rob PikeDalším směrem je, aby ladění bylo co nejméně časté. Pro toto platí:
V kódu programu může docházet k tzv. nezdokumentovanému chování - závažným chybám, které se při běžném běhu programu neobjeví, ale jsou velmi nebezpečné pro bezpečnost celého systému v případě cíleného útoku. Nejčastěji je to důsledek chyb programátora. Nejznámějšími příklady jsou SQL injection a buffer overflow . V tomto případě je úkolem ladění:
Existují takové metody:
Slovníky a encyklopedie | |
---|---|
V bibliografických katalozích |