EDA debugger je určený na editáciu a ladenie výpočtu vypočítaných vektorov a funkcií subsystému EDA. Dostupný je ako grafický objekt pre schémy pod menom EDA debugger.
Samotný grafický objekt umožňuje priamo vo svojom grafickom rozhraní pripojiť sa na ľubovoľný bežiaci EDA výpočet v aplikácii, pričom pod výpočtom sa rozumie načítanie vypočítaného vektora alebo výpočet funkcie. Ovládanie ladenia prebieha celé v grafickom rozhraní, ktoré poskytuje grafický objekt EDA debugger.
Druhý spôsob použitia EDA debuggera je odštartovanie výpočtu na ladenie priamo z ESL skriptu. Na takéto použitie slúžia podporné funkcie grafického objektu EDA debugger. V prvom kroku je potrebné vytvoriť spojenie pre ladenie s procesom vykonávajúcim EDA výpočty. Na nadviazanie takéhoto spojenia slúži funkcia %HI_EDADebugOpen. Ukončenie ladiaceho pripojenia sa vykonáva funkciou %HI_EDADebugClose. Po vytvorení ladiaceho spojenia je možné spustiť výpočet existujúceho vypočítaného vektora na ladenie zavolaním funkcie %HI_EDADebugVectorRec. Zavolaním funkcie %HI_EDADebugCalcFunctionRec sa spustí ladenie výpočtu vlastného EDA-L predpisu. Funkcie %HI_EDADebugVectorRec a %HI_EDADebugCalcFunctionRec nečakajú na skončenie nimi rozbehnutého výpočtu.
Tretím spôsobom je možnosť editácie predpisu vektora. Pre editáciu je nutné vložiť počiatočný predpis pomocou volania %HI_SetText. Upravený zápis je následne možné získať volaním funkcie %HI_GetText. Stlačením tlačidla "Kontrola syntaxe" je generovaná udalosť OnDebuggerAction. Výsledok kontroly syntaxe je následne možné vložiť pomocou funkcie %HI_SetDebuggerResult.
Grafický objekt EDA debugger použitý v schéme otvorenej v HI vyzerá nasledovne:
Skladá sa z:
Slúži na spúšťanie ladenia, editáciu predpisu EDA vektora a zadávanie príkazov, pomocou ktorých sa ovláda ladenie výpočtu.
Prechod na riadok v zobrazenom vektore CTRL+G | |
Kontrola syntaxe | |
Zoznam bežiacich výpočtov – pripojenie sa k bežiacemu výpočtu, ktorý sa má ladiť. Dialóg zobrazí zoznam všetkých bežiacich EDA výpočtov v aplikácii s informáciou, na ktorom EDA serveri výpočet beží, z ktorého klienta bol odštartovaný a počiatočný vektor, ktorý je načítavaný. | |
Zoznam konštánt | |
Zoznam funkcií | |
Pokračuj vo výpočte. | |
Krok dnu – v prípade, že riadok obsahuje načítanie vypočítaného vektora, pokračuje sa v jeho vnútri. | |
Krok ponad – v prípade, že riadok obsahuje načítanie vypočítaného vektora, načítanie sa vykoná a výkon sa zastaví na nasledujúcom riadku skriptu. | |
Pokračuj po návrat z vektora. | |
Preruš prebiehajúci výpočet. | |
Ukončenie výpočtu. | |
![]() | Prerušenie pri výnimke – výberové tlačidlo s dvoma farbami:
|
Koniec ladenia výpočtu (výpočet bude bežať ďalej). |
Obsahujú predpisy vektorov, ktoré boli použité počas ladenia pripojeného výpočtu. Predpis vektora je do záložiek pridaný automaticky pri prerušení výpočtu – záložky budú obsahovať všetky vektory v aktuálnom zásobníku volaní. Ručne je možné záložku s predpisom vektora odobrať (skryť) a pridať naspäť (cez zoznam vektorov).
Záložky obsahujú meno a verziu vektora
Záložka obsahuje správy, ktoré boli vygenerované počas výpočtu. Do okna v záložke je možné vpisovať svoje poznámky a rušiť označené texty.
Záložka hodnôt sledovaných lokálnych premenných vybraného vektora. Symbol +/- zbalí / rozbalí premenné vektora.
Výber môže byť daný rozsahom a vymenovaním. Ak je rozsah ukončený 0, zobrazujú sa položky až po poslednú. Napr.: 3,11-14,18,25-0.
Sledovaná premenná / skupina premenných sa zo zoznamu odoberá cez popup menu. Zmena hodnoty je možná priamo v zozname sledovaných premenných.
Popup menu nad zoznamom sledovaných premenných umožňuje:
Zásobník volaní zobrazuje aktuálny zoznam vnorení vektorov prerušeného výpočtu. Prvotný vektor vo výpočte je v zozname prvý hore. Dvojklikom v zozname je možné vybrať záložku s predpisom vektora. Automaticky bude vybratý aj riadok, na ktorom je výpočet daného predpisu prerušený.
INT _serverId, _clientId INT _retCode ENTRY BTN_DebugVectorRec_OnClick RECORD NOALIAS (SD._System_HI_EDADebugVectorRec) _paramsRec TIME _bt, _et ; pripojenie sa na proces vykonavajuci EDA vypocty _retCode := %HI_EDADebugOpen(_DBG, _serverId, _clientId) _bt := %StrToTimeEx("2015-01-01 00:00:00", "rrrr-mm-dd hh:mi:ss") _et := %StrToTimeEx("2015-02-01 00:00:00", "rrrr-mm-dd hh:mi:ss") _paramsRec[1]^structVersion := 1 ; spustenie vypoctu vektora na ladenie _retCode := %HI_EDADebugVectorRec(_DBG, "DBG.Main", _bt, _et, _paramsRec\HBJ) END BTN_DebugVectorRec_OnClick ENTRY BTN_DebugClose_OnClick ; uzavretie ladiaceho spojenia _retCode := %HI_EDADebugClose(_DBG) END BTN_DebugClose_OnClick BEGIN ; ziskanie ID procesu EDA Klient, ktory pouziva toto HI a procesu EDA Server, na ktory je klient pripojeny ; predpoklada sa, ze uz existuje spojenie na EDA CALL %EDA_GetProcessId(_serverId, _clientId, _retCode) END |