pondělí 25. května 2009

Třída Debug

Třída Debug obsahuje několik metod pro debugování, tedy ladění kódu. Konkrétně to jsou: Debug::printDebug(str s) Debug::printTab(DebugPrintTab tab, str s) Debug::assert(boolean b) První dvě jsou velmi podobné, jejich účelem je vypsání dodatečných informací v okně debuggeru. printDebug() na záložku Debug a printTab() na záložku určenou prvním parametrem. Metoda assert() je také velmi jednoduchá. Tato metoda ověřuje platnost nějakého předpokladu, který by měl vždy být splněn. To se nazývá assertion, česky aserce. Pokud splněn není, běh programu se zastaví a řízení se předá debuggeru. Je to vlastně takový podmíněný breakpoint. Typicky se takto ověřují vstupní nebo výstupní podmínky metody. Jako příklad ve standardní aplikaci (AX2009) může posloužit metoda calculateSumOfAmount třídy LedgerBudget, kde najdeme aserci Debug::assert(_startDateStart <= _startDateEnd); Aserce jsou určeny pro ladění, nikoli běh v uvolněné aplikaci. Obvykle se zachovávají ve zdrojovém kódu, ale kompilátor je ignoruje, pokud nejde o kompilaci debugovací verze. AX to sice neumožňuje řešit na úrovni kompilátoru, ale umožňuje nastavit Režim ladění (Nástroje > Možnosti > Vývoj) - je-li nastaveno na Ne, jsou debugovací příkazy ignorovány.

Žádné komentáře:

Okomentovat