EDA debugger je určený na 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 .

Grafický objekt EDA debugger použitý v schéme otvorenej v HI vyzerá nasledovne:

EDA Debugger v schéme

Skladá sa z:

Nástrojový panel


Slúži na zadávanie príkazov, pomocou ktorých sa ovláda ladenie výpočtu.

Príkazové menu
Zapnutie zobrazenia číslovania riadkov v záložke vektorov.
Prechod na riadok v zobrazenom vektore
Pripojenie na výpočet – 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ý.

Bežiace EDA výpočty
Zoznam lokálnych premenných v zobrazenom vektore – umožňuje pridávať premenné do záložky Premenné.
Zoznam vektorov použitých pri ladení (aj zatvorených) – dá sa z neho otvoriť (vybrať) vektor, ktorý sa zobrazí.

Zoznam vektorov
Informačná ikona behu výpočtu:
  1. Sivá – výpočet je pozastavený,
  2. Červená – prebieha výpočet.
Pokračuj vo výpočte.
Pokračuj vo výpočte vektora po riadok, na ktorom je kurzor (ak na riadku nie je príkaz skriptu, pokračuje sa až po najbližší riadok s príkazom).
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:
  1. Sivá – neprerušuj pri výnimke,
  2. Červená – preruš pri výnimke.
Zruš všetky zarážky – zrušenie všetkých zarážok vo všetkých vektoroch.
Koniec ladenia výpočtu (výpočet bude bežať ďalej).

Záložky vektorov


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 + indikáciu stavu vektora, pričom sú poskytnuté 3 možnosti:

Záložky

Záložka predpisu vektora

Predpis vektora

Obsahuje:

Pomocou popup menu nad predpisom vektora je možné:

Zobrazovacie záložky


Správy

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.

Premenné

Záložka hodnôt sledovaných lokálnych premenných vybraného vektora. Symbol +/- zbalí / rozbalí premenné vektora.

Sledované lokálne premenné

Plní sa zo zoznamu lokálnych premenných z príkazového menu alebo cez popup menu nad vybranou premennou v okne predpisu vektora.
Sledované lokálne premenné
Zoznam lokálnych premenných farebne odlišuje premenné, ktorých hodnoty sú už sledované (tyrkysová farba). Pri výbere premennej typu pole je potrebné zadať aj rozsah hodnôt, ktoré budú sledované:
Zadanie rozsahu premennej
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.
Príklad
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íí


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ý.

Príklad spustenia výpočtu vektora na ladenie zo skriptu schémy


 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 

Funkcie pre ovládanie Grafických objektov