ScriptDebugger.exe
Defaultně dodávaný exe soubor. Tento nástroj umožňuje ladit balíčky skriptů, krokovat jejich běh, pozastavovat na bodech zastavení (breakpoints), zjišťovat zanoření volání (callstack), vyhodnocovat výrazy, zachytávat ladící hlášení, zjišťovat a měnit hodnoty lokálních proměnných skriptů apod.

Tento nástroj je určen především servisním konzultantům servisní sítě výrobce a správcům systému. Běžný uživatel tento nástroj ke své práci nebude potřebovat.
Nástroj ScriptDebugger vyžaduje pro svou činnost desktopový OS Windows 7 a vyšší, popřípadě serverový OS Windows 2003 a vyšší. Dále je třeba na případném firewallu povolit port 8438. Pokud je použit pouze vestavěný firewall ve Windows, pak postačí při navázání povolit tomuto programu TCP komunikaci.
Pokud ScriptDebugger běží, ale je nastaven tak, aby nepřijímal nové klienty, nezpůsobí to již pád navazujících procesů (např. naplánovaných úloh). Spojení je korektně ukončeno.
Nástroj ScriptDebugger obsahuje mnoho dalších funkcí a vlastností, obvyklých pro tzv. IDE prostředí, např. zapnutí zastavování běhu při vzniku výjimky v kódu skriptu, zobrazování ladících informací odesílaných ze skriptu pomocí vestavěné funkce OutputDebugString a pod.

Typické ladící sezení probíhá takto:
- Balíček skriptů, který chceme ladit, musí být zkompilovaný a musí být ve stavu, který umožňuje jeho spuštění. K tomu slouží stavy „Používat“ nebo „Ladit (Použití vyžaduje privilegium)“.
- Pokud má balíček stav „Používat“, je spouštěn vždy.
- Pokud má balíček stav „Ladit (Použití vyžaduje privilegium)“, je skript spuštěn pouze v případě, že přihlášený uživatel má přiděleno privilegium „Ladit skripty“.
- Stav balíčku lze pro testovací spojení nastavit samostatně, ve výchozím stavu je stejný jako pro produkční spojení.
- Spustí se ScriptDebugger. Po spuštění je seznam připojených klientů prázdný.
- Pro ladění skriptů ve vizuálním klientovi (např. AbraGen.exe) je třeba klienta spustit s parametrem příkazové řádky
-connecttoscriptdebugger
. - Po připojení klienta se ve ScriptDebuggeru otevře jeho prázdné pracovní okno. Postupně se v pravé části okna zobrazují spouštěné balíčky skriptů.
- V okamžiku, kdy systém zavede skript, který chceme ladit, je třeba zastavit jeho provádění. Toho lze docílit buď ručním vložením bodu zastavení (breakpoint) na zvolený řádek v kódu, nebo zaškrtnutím volby "Zastavit na novém skriptu" na záložce "Body zastavení". Tuto volbu lze také vynutit předem zaškrtnutím volby "Zastavit po připojení nového klienta" v hlavním okně ScriptDebuggeru.
- V okamžiku zastavení běhu skriptu je možné:
- Umístit bod zastavení (breakpoint) dvojklikem před řádek kódu. Na záložce "Body zastavení" lze doplnit pokročilé atributy, například podmínku, při jejímž splnění se běh na breakpointu zastaví.
- Spustit zpracování (Běh, F9), běh programu se zastaví až na dalším bodu zastavení, jinak doběhne do konce.
- Spustit ke kurzoru (Aktuální pozice, F4), běh se zastaví na řádku, kde je umístěn kurzor. Lze tak přeskočit delší části kódu bez krokování.
- Krokovat řádek (Krok přes, F8), vykoná se aktivní řádka a ukazatel se přesune na další.
- Krokovat vnitřní části řádky (Krok dovnitř, F7), pokud se na řádce volá jiná metoda, debugger skočí na její první řádek.
- Vyhodnocovat výrazy, zjišťovat a měnit hodnoty proměnných na záložce "Nástroje".
- Přepínat mezi zavedenými skripty a pracovat s jejich body zastavení.
- Ručně vyvolat výjimku z bodu zastavení nebo za přímého běhu.

Skripty spouštěné v rámci naplánovaných úloh jsou zpracovávány Automatizačním serverem. Z pohledu ScriptDebuggeru je klientem proces AutoServerSlave.exe
. Jedná se o nevizuálního klienta, který se ke spuštěnému ScriptDebuggeru připojuje automaticky.
Pro každou naplánovanou úlohu se spouští nový proces AutoServerSlave.exe
, který se po jejím zpracování ihned ukončí. Je proto nutné zajistit, aby se zpracování skriptu zastavilo dříve, než celý proces doběhne. Toho lze dosáhnout dvěma způsoby:
- Zaškrtnutím volby "Zastavit po připojení nového klienta" v hlavním okně ScriptDebuggeru. Tím dojde k automatickému zastavení hned po načtení prvního skriptu nově připojeným klientem.
- Vložením časové prodlevy do skriptu pomocí systémové procedury
Sleep
. To poskytne uživateli dostatek času na ruční vložení bodu zastavení v okně ScriptDebuggeru na řádek následující po volání této procedury.

- Identifikace klienta v názvu okna: Název okna ScriptDebuggeru pro konkrétního klienta je rozšířen o identifikaci tohoto klienta (stejnou, jaká je uvedena v hlavním okně), což usnadňuje orientaci při ladění více klientů najednou.
- Zpřesněná chybová hláška: Hláška "Pro knihovnu %s nejsou k dispozici zdrojové kódy" byla doplněna o popis možné příčiny: "Problém je způsoben neúplným zadáním jména knihovny v sekci uses. Pro ladění skriptů je třeba, aby v sekci uses byl uveden vždy celý název knihovny včetně balíčku, ve kterém se nachází, a to ve formátu balíček.knihovna".
- Stabilita při chybějících zdrojových kódech: Bylo ošetřeno chování v situaci, kdy pro laděnou knihovnu nejsou k dispozici zdrojové kódy. ScriptDebugger v tomto případě již nezpůsobí pád aplikace (AV).

Tato volba se nachází v kontextovém menu hlavního okna ScriptDebuggeru vyvolaného pravým tlačítkem myši.
Prostřednictvím této volby se lze připojit ke zvolenému procesu.
Nemusí se jednat nutně o proces ABRA Gen, ale lze "ladit" libovolný spuštěný proces, protože “ladění” probíhá prostřednictvím událostí na úrovni Windows API.
V zobrazeném okně se pak vypisují některé z událostí, které v daném procesu probíhají:
- Zápis prostřednictvím metody OutputDebugString (OUTPUT_DEBUG_STRING_EVENT)
- Spuštění nového procesu (CREATE_PROCESS_DEBUG_EVENT)
- Ukončení procesu (EXIT_PROCESS_DEBUG_EVENT)
- Vzniklé výjimky (EXCEPTION_DEBUG_EVENT)
Obdobnou funkci jako volba Ladit proces má tlačítko Připojit API Debugger. Tato volba je dostupná v ladícím okně připojeného procesu AbraGen.exe.