TEHNICI DE DEPANARE PROGRAME (DEBUG)

Scopurile capitolului:

Capitolul isi propune sa revizuiasca si sa consolideze cunostiintele despre tratarea erorilor. Subiecte abordate:



Modalitati de testare si debug



Facilitati de debug

Modul debug

Modul debug permite supravegherea prelucrarilor efectuate cand o forma este rulata. Sunt afisate mesaje despre executia trigger-ilor in timpul sesiunii "Runform".

Daca trigger-ul este de tip "V2", SQL*Froms da numele trigger-ului care s-a activat si numarul pasului curent. Daca trigger-ul este de tip "V3", numele si locatia trigger-ului sunt date.

Un exemplu de mesaj de debug pentru un trigger de tip "V3":
Executing ON-VALIDATE-FIELD trigger on field SHIPDATE

Rularea cu intreruperi



O alta posibilitate oferita de debug este "Break processing". In timpul executiei cu intreruperi executia aplicatiei este temporar suspendata pentru a da posibilitatea utilizatorului sa aleaga o optiune de debug.

Mesajele de mai jos sunt afisate cand procedura Break este executata dintr-o forma rulata in mod debug:
               Debug Mode Options

     Display Global Variables
     Display System Variables
     Display Page Zero Fields
     Continue with Debug Messages
     Continue without Debug Messages
     Exit Runform


Cum este activata rularea cu intreruperi



Intreruperea este realizata prin chemarea procedurii packaged (impachetate) "Break" intr-un trigger. Daca nu este activata optiunea de debug, "Break" este ignorat.

Optiunea de rulare "Statistics"


Optiunea de rulare "Statistics" afiseaza un mesaj la incheierea unei sesiuni SQL*Forms (Runform) anuntand numarul maxim de cursoare simultane care au fost utilizate in timpul sesiunii.

Setarea optiunii de rulare "Statistics"


In versiunea 3, optiunea de rulare "Statistics" activeaza si facilitatea SQL Trace pentru sesiunea curenta SQL*Forms.

Invocarea facilitatilor de "trace"



"Trace" deschide un fisier care inregistreaza parcurgerile, executia si "fetch"-urile din fiecare comanda SQL executata intr- o sesiune "Runform"/"Sqlforms". "Trace" este utilizat pentru monitorizarea performantelor, si adaptarea aplicatiilor, cat si pentru testare si debug.

Posibilitatea de a edita comenzile utilizatorului




Posibilitatea de editare a comenzilor utilizatorului



Ce este facilitatea "keystroke"?



Facilitatea "keystroke" permite inregistrarea intr-un fisier text a ceea ce este testat de un operator sau proiectant pentru a putea fi re-rulat apoi. Aceasta facilitate poate fi utilizata pentru a testa functionalitatea unei forme sub diferite versiuni software si tipuri de hardware.

Utilizarea facilitatii "keystroke":



Utilizarea acestei facilitati presupune folosirea unor optiuni din linia de comanda SQL*Forms si a unui editor text. Sunt listate in continuare optiunile disponibile la rularea SQL*Forms (Design) sau SQL*Forms (Run Form):
     Optiune           Actiune

     -e numefisier   captureaza intr-un fisier script actiunile
                       de la tastatura ale unui operator;

     -r numefisier   utilizeaza fisierul script specificat
                       pentru a rula o aplicatie. Intrarile de la
                       tastatura sunt citite din fisierul
                       specificat;

     -i numefisier   inregistreaza iesirea unei sesiuni
                       interactive intr-un fisier specificat.
                       Afiseaza iesirea si pe ecran;

     -w numefisier   (cu optiunea -r) inregistreaza intr-un
                       fisier iesirea unei sesiuni in care s-a
                       utilizat un script "keystroke" si nu
                       afiseaza si pe ecran iesirea;


Dupa inregistrarea intrarilor de la tastatura (a comenzilor si datelor) in timpul unei sesiuni Runform se poate edita fisierul script pentru a schimba operatiile pe care le va executa.

     Fisierul script "keystroke"

     Exemplu de fisier script "keystroke"

     ----------------------------------------------------------
     ;Generated by SQL*Forms and DMU key mapping
     ;
     Invoke Menus             Operator presses [MENU] key
     q Select                 and selects QUERY.
      Next Field              Moves to next field (ORDONATE).
     % 8 8  Execute Query     Enters % 88 and executes query.
      Next Field              Moves back to
      Move Right              ORDONATE field and changes 88 to
      Move Right              89.
     9  Execute Query         Executes the query.
      Next Field
      Next Field              Advances to COMMPLAIN field and
     B Next Block             changes value to B. Goes to ITEM
     1 Next Field             block and enters a record
     1 0 0 8 9 0  Next Field
     1 0  Next Field
     1  Next Field>
     1 0  Accept/Commit       Commits record and exits.
      Exit
     ----------------------------------------------------------

     Editarea fisierului script

          - pentru teste repetate;
          - pentru intrari variate.

"Common Sense Debugging" (1)



Sugestii petru debug


"Common Sense Debugging" (2)





"Common Sense Debugging" (3)