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 ladiacich príkazov.
  • Záložky vektorov – obsahujú zdrojové predpisy výpočtu vektorov.
  • Zobrazovacie záložky:
    • Správy – obsahuje správy, ktoré boli vygenerované počas výpočtu.
    • Premenné – obsahuje sledované premenné vybraného vektora.
  • Zásobník volaní – obsahuje aktuálny zoznam vnorení vektorov prerušeného výpočtu.

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:

  • Sivý kruh – daný vektor v čase prerušenia výpočtu nie je súčasťou aktuálneho zásobníka volaní.
  • Zelený kruh – daný vektor v čase prerušenia výpočtu je súčasťou aktuálneho zásobníka volaní.
  • Červený kruh – daný vektor v čase prerušenia výpočtu je súčasťou aktuálneho zásobníka volaní a práve v ňom sa nachádza ďalší príkaz, ktorý bude vykonaný.
Záložky

Záložka predpisu vektora

Predpis vektora

Obsahuje:

  • Voliteľné číslovanie riadkov
  • Značky zarážok – červené kruhy
  • Značku prerušenia výkonávania výpočtu – zelená šípka
  • Predpis vektora so zvýraznením syntaxe:
    • kľúčové slová a funkcie – tyrkysová farba,
    • lokálne premenné – žltá farba,
    • delimitery – biela farba.
  • Popis premennej a jej hodnotu (v prípade jednoprvkových premenných), nad ktorou je kurzor myši.

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

  • pridanie vybranej lokálnej premennej do zoznamu sledovaných premenných vektora,
  • skrytie záložky vektora – nastavenie sledovania premenných a zarážok zostane zachované. Záložku je možné opätovne zobraziť cez zoznam vektorov.

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:

  • odobratie vybratej premennej / viacerých premenných,
  • odobratie všetkých premenných,
  • nastavenie nových hodnôt vybraných položiek,
  • zrušenie zmeny hodnoty vybraných položiek.

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 
Napíšte komentár