How do I debug PROGRAM written in LANGUAGE ANYFLO

Interpreter
Debug
Debug under Windows
Debug under UNIX

















































Interpreter

Functions written in anyflo language are dynamically compiled. In order to verify their execution you can set print and input, it is then possible to consult or change any variables, execute any function and, more generally, execut any commande.
You can also run any function independently of the main function.

func error returne the name of the function where an error occured.

Function bug1.func gives a frame for debuging.
Tags:
       /* AJOUTER du code */
and
       /* FIN AJOUTER du code */
delimit areas where it is possible to add code, while tags:
       /* NE PAS MODIFIER */
and
       /* FIN NE PAS MODIFIER */
delimit unmodifiable areas .
A minimal menu containing:
Two boxes APP1 and APP2 corresponding to the functions APP1(), func_APP1(), APP2(), func_APP2() in which you write the code to debug.
A box DEBUG corresponding to functions DEBUG(), func_DEBUG() allowing to interactively modify extern variables Vi (0 <= i <= 23) by the command interaction debug.
A box VAR corresponding to functions VAR(), func_VAR() in which these variables can be used.

2) When launching anyflo with a file *.js, in case of error it automatically restarts, so it is not possible to make a diagnosis.
Then launche anyflo with file anyflo_video.js, read the function to debug and call it.
If the compilation error messages sent can make the diagnosis, the edit func command gives the list of func functions compiled without error, the following is probably faulty ...
Otherwise, call the function to debug, error messages relating to the execution can make the diagnosis.


















































UNDER IMPLEMENTATION

Debug

Commande yes debug activates debug mode, interpreter is invoked before executing each instruction, it is then possible to consult or change any variables, execute any function and, more generally, execut any commande..

Continuation

         1) Le caractère de continuation est modifiable dans le fichier enva.h (il est par dáfaut la touche escape de code ASCII 27).
         2) Il est édité au lancement du programme.
         3) On peut y accéder interactivement par la commande debug ascii:
debug ascii: Retourne le caractere de continuation (27=escape par défaut).
debug ascii("c"): Affecte le caractère c au caractere de continuation.
Exemples:
$(debug) ascii: Produit 27.
debug ascii("`"): Change le caractère de continuation en l´accent grave.

Pratiquement

         Invoquer la commande
yes debug.
On quitte le mode debug avec no debug.
         Le propmt devient DEBUG>
         Enfoncer le caractère de continuation puis NL
         Le prompt redevient ?
         Écrire une commande (par exemple l´appel d´une fonction à débugger)
         Le nom de la fonction, le numéro de la line à exécuter et le text de cette line sont édités
         L´interpreteur a la main: On peut exécuter n´importe quelle commande
         Le caractère de continuation suivi de NL passe à l´instruction suivante

Commandes du debugger

Avancer

         1) Le caractère de continuation suivi de NL passe à l´instruction suivante
         2) no debug;, suivi du caractère de continuation et NL abandonne le mode debugger
         3) GO execute jusqu´au prochain point d´arrêt

Points d´arrêt

         1) STOP num Met un point d´arrêt à la line numéro num de la fonction en cours d´exécution
         2) STOP "toto" Met un point d´arrêt à la fonction toto
         3) STOP "toto",num Met un point d´arrêt à la line numéro num de la fonction toto
         4) edit STOP Édite les STOPs
         5) rem STOP num Supprime le STOP num
         6) rem STOP "toto" Supprime le STOP "toto"
         7) rem STOP "toto",num Supprime le STOP "toto",num
         8) ini STOP Supprime tous les STOPs

Lister

         1) LIST Liste les 20 lignes suivant l´instruction exécutée
         2) LIST n Liste la line numéro n de la fonction en exécution
         3) LIST n1,n2 Liste les lignes n1 a n2 de la fonction en exécution
         4) LIST "toto" Liste la fonction toto
         5) LIST "toto",n Liste la line numéro n de la fonction toto
         6) LIST "toto",n1,n2 Liste les lignes n1 a n2 de la fonction toto

Debugger sous windows (Visual C++)

         Lancer le programme compilé avec les options debug (see la doc du VisualC++).

Debugger sous dbx(UNIX)

         Lancer le programme sous dbx:
         dbx anyflo
         >run
         Exécuter des fonctions
         ^C interromp le traîtement
         >assign Debug=1
         >c
         À l´exécution d´une commande l´interpreteur a la main avec le prompt:
         DEBUG>
         N´importe quelle line de commandes peut être exécutée