COMMENT DÉBUGGER UN PROGRAMME
EN LANGAGE ANYFLO




Debuger des fonctions anyflo




EN COURS D´IMPLÉMENTATION

Principe
Continuation
Pratiquement
Commandes du debugger
Debugger sous Windows
Debugger sous UNIX

















































Debuger des fonctions anyflo

1)La fonction bug1.func offre un frame pour débuger un programme écrit en langage anyflo.
Les balises
       /* AJOUTER du code */
et
       /* FIN AJOUTER du code */
délimitent des zones où il est possible d´ajouter du code, alors que les balises
       /* NE PAS MODIFIER */
et
       /* FIN NE PAS MODIFIER */
délimitent des zones non modifiables.
Un menu minimal comprenant:
Deux cases APP1 et APP2 correspondent aux fonctions APP1(), func_APP1(), APP2(), func_APP2() dans lesquelles on écrira le code à débuger.
Une case DEBUG correspondant aux fonctions DEBUG(), func_DEBUG() permettant de modifier interactivement les variables externes Vi (0 <= i <= 23) par la commande interaction debug.
Une case VAR correspondant aux fonctions VAR(), func_VAR() dans lesquelles peuvent être utilisées ces variables.

2) Lorsque l´on lance anyflo par un fichier *.js, en cas d´erreur il se relance automatiquement, si bien qu´il n´est pas possible de tirer un diagnostique. On relance alors anyflo avec le fichier anyflo_video.js, on lit la fonction à débuger.
Si l´erreur concerne la compilation les messages émis permettent de tirer le diagnostique, la commande edit func donne la liste des fonctions compilées sans erreur, la suivante est probablement la fautive...
Sinon, appeler la fonction à débuger, des messages d´erreurs concernant l´exécution permettent de tirer le diagnostique.

Principe

       Les fonctions écrites en langage anyflo sont compilées dynamiquement et on peut suivre leur exécution pas à pas.
         Pour cela, la main est rendue à l´interpreteur avant l´exécution de chaque instruction, et il est alors possible de consulter ou de modifier des variables, exécuter des fonctions et, plus généralement, exécuter n´importe quelle commande
         Le caractère de continuation permet de passer à l´instruction suivante

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 ENTER
         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 ligne à exécuter et le text de cette ligne sont édités
         L´interpreteur a la main: On peut exécuter n´importe quelle commande
         Le caractère de continuation suivi de ENTER passe à l´instruction suivante

Commandes du debugger

Avancer

         1) Le caractère de continuation suivi de ENTER passe à l´instruction suivante
         2) no debug;, suivi du caractère de continuation et ENTER 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 ligne 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 ligne 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 ligne 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 ligne 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 ligne de commandes peut être exécutée