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:
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.
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ý. |
|
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í.
|
|
Informačná ikona behu výpočtu:
|
|
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:
|
|
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žka predpisu 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.
Plní sa zo zoznamu lokálnych premenných z príkazového menu alebo cez popup menu nad vybranou premennou v okne predpisu vektora.
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é:
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:
- 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
Súvisiace stránky:
Pridať komentár