Animace programu - Program animation
Animace programu nebo Šlápnutí odkazuje na nyní velmi časté ladění způsob provedení kód jeden "řádek" po druhém. Programátor může zkontrolovat stav programu, stroje a souvisejících dat před a po provedení konkrétního řádku kódu. To umožňuje vyhodnocení účinky tohoto prohlášení nebo instrukce izolovaně, a tím získat přehled o chování (nebo nesprávném chování) provádějícího programu. Téměř všechny moderní IDE a debuggery podporují tento způsob provedení. Nějaký testovací nástroje povolit provádění programů krok za krokem volitelně na kterémkoli z nich zdrojový kód úroveň nebo strojový kód úrovni v závislosti na dostupnosti údajů shromážděných na kompilovat čas.
Dějiny

Návod šlapání nebo jeden cyklus také odkazoval na související, mikroskopičtější, ale nyní zastaralé[pochybný ] metoda ladění zastavením procesoru hodiny a ručně jej posouvat po jednom cyklu. Aby to bylo možné, jsou vyžadovány tři věci:
- Ovládací prvek, který umožňuje zastavení hodin (např. Tlačítko „Stop“).
- Druhý ovládací prvek, který umožňuje ruční posunutí zastavených hodin o jeden cyklus (např. Přepínač „krok instrukce“ a tlačítko „Start“).
- Některé způsoby záznamu stavu procesoru po každém cyklu (např. Zobrazení registru a paměti).
Na IBM Systém 360 řada procesorů oznámená v roce 1964 byla tato zařízení poskytována spínači na předním panelu, tlačítky a bankami neonových světel.
Jiné systémy, jako je PDP-11 poskytoval podobné vybavení, opět u některých modelů. Přesná konfigurace byla také závislá na modelu. Nebylo by snadné zajistit taková zařízení LSI procesory, jako je Intel x86 a Pentium vedení z důvodu chlazení[pochybný ][je zapotřebí objasnění ].
Tak jako multiprocesing staly se běžnějšími, takové techniky by měly omezenou praktičnost, protože mnoho nezávislých procesů by bylo zastaveno současně. To vedlo k vývoji proprietárního softwaru od několika nezávislých prodejců, kteří poskytovali podobné funkce, ale záměrně omezovali zarážky a krokování instrukcí pro konkrétní aplikační programy v konkrétních adresních prostorech a vlákna. Stav programu (podle použitelnosti pro vybranou aplikaci / vlákno) byl v každém kroku uložen ke kontrole a obnoven před obnovením, což vyvolává dojem prostředí jediného uživatele. To obvykle postačuje pro diagnostiku problémů na aplikační vrstvě.
Místo pozastavení spuštění pomocí tlačítka fyzického zastavení - poté začněte procházet aplikačním programem, a bod zlomu nebo Požadavek „Pozastavit“ musí být obvykle nastaven předem, obvykle u konkrétního příkazu / instrukce v programu (vybrán předem nebo alternativně, standardně u první instrukce).
K zajištění „animace“ programu na celou obrazovku je obvykle zapotřebí vhodné I / O zařízení, jako je videomonitor, které může zobrazit přiměřenou část kódu (např. V rozloženém strojovém kódu nebo zdrojový kód formát) a poskytnout ukazatel (např. <==) na aktuální instrukci nebo řádek zdrojového kódu. Z tohoto důvodu je rozšířené používání těchto animátorů na celou obrazovku v mainframe svět musel čekat na příjezd zpracování transakcí systémy - jako např CICS na začátku 70. let a původně se omezovaly na ladění aplikačních programů fungujících v tomto prostředí. Novější verze stejných produktů poskytovaly monitorování / ladění dávkových programů a jiných operačních systémů a platforem napříč regiony.
S mnohem pozdějším zavedením Osobní počítače přibližně od roku 1980 bylo možné integrovat ladicí programy integrovanější do této domény jediného uživatele a poskytly podobnou animaci rozdělením uživatelské obrazovky a přidáním ladicí „konzoly“ zajišťující interakci programátora.
Borland Turbo Debugger byl samostatný produkt představený v roce 1989, který poskytoval animaci programů na celou obrazovku pro PC. Novější verze přidaly podporu pro kombinování animace se skutečnými zdrojovými řádky extrahovanými v době kompilace.
Techniky animace programů
Existují nejméně tři odlišné softwarové techniky pro vytváření „animace“ během provádění programů.
- instrumentace zahrnuje přidání dalšího zdrojového kódu do programu na kompilovat čas zavolat animátorovi před nebo po každém příkazu k zastavení normálního provádění. Pokud je program, který má být animován, interpretovaný typ, například bytecode nebo CIL tlumočník (nebo IDE code) používá svůj vlastní vestavěný kód k zabalení kolem cílového kódu.
- Vyvolané přerušení Tato technika zahrnuje vynucení zarážky v určitých bodech programu v době provádění, obvykle změnou instrukce strojového kódu v tomto bodě (může to být vložené systémové volání nebo záměrná neplatná operace) a čekání na přerušení. Když dojde k přerušení, je zpracován testovacím nástrojem, aby ohlásil stav zpět programátorovi. Tato metoda umožňuje provádění programu při plné rychlosti (dokud nedojde k přerušení), ale trpí nevýhodou, že většina pokynů vedoucích k přerušení není nástrojem sledována.
- Simulátor instrukční sady Tato technika zachází s kompilovanými programy strojový kód jako vstupní „data“ a plně simuluje pokyny hostitelského počítače, monitoruje podmíněný nebo bezpodmínečný kód hraniční body nebo programátor požadoval mezi jednotlivými kroky požadavky na animaci „jednoho cyklu“.
Porovnání metod
Výhodou poslední metody je, že v kompilovaném programu nejsou provedeny žádné změny, které by poskytly diagnostiku, a existuje téměř neomezený prostor pro rozsáhlou diagnostiku, protože tento nástroj může rozšířit diagnostiku hostitelského systému o další funkce sledování softwaru. Pomocí této techniky je také možné automaticky diagnostikovat (a předcházet) mnoha chybám programu, včetně porušení úložiště a přetečení vyrovnávací paměti. Detekce smyčky je také možná pomocí automatického trasování instrukcí spolu s prahovými hodnotami počtu instrukcí (např. Pauza po 10 000 instrukcích; zobrazení posledních n instrukcí) Druhá metoda pouze změní instrukci, která se zastaví před jejím provedením a může ji také obnovit před volitelným obnovením někteří animátoři volitelně umožňují použití více než jedné metody v závislosti na požadavcích. Například pomocí metody 2 provést do konkrétního bodu plnou rychlostí a poté pomocí simulace sady instrukcí.
Další funkce
Animátor může, ale nemusí kombinovat další testovací / ladicí funkce, jako je například trasování programu, výpis, podmíněné bod zlomu a Paměť změna, průběh programu změna, pokrytí kódu analýza, detekce „horkého bodu“, detekce smyčky apod.
Příklady programových animátorů
(V den první objednávky vydání)
- Borland Turbo Debugger 1989 - pro PC
- CodeView 1985, Debugger Visual Studio 1995, Visual Studio Express 2005 - pro PC
- Firebug (rozšíření Firefox) Leden 2006 - pro PC
Externí odkazy a reference
- Krokování (Visual Studio) Přehled krokové podpory v Microsoft Corporation IDE, Vizuální studio
- Tarraingim - Prostředí animace programu
- Animace programu jako způsob, jak učit a učit se o návrhu a analýze programu
- Strukturované informace o testování softwaru (například Historie testování softwaru) publikované v odkazech Testování