COMMENT DÉBUGGER UN PROGRAMME
EN LANGAGE ANYFLO



Débuger un programme
Debug
Debugger sous Windows
Debugger sous UNIX

































































































Débuger un programme

Compilation error
Link error
Execution error

Debug

La commande yes debug passe en mode debug, 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.

Continuation

Le caractère de continuation permet de passer à l´instruction suivante
         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 (voir la documentation de VisualC++).
Mettre un break à la ligne if(i) après la ligne i = 0; /* Break debug */ de la fonction inita du fichier inita.c, puis assigner 1 à la i.
messages Rentrer une suite d'options, terminer par .
entrer les options les unes aprèes les autres puis terminer par . (point)


EN COURS D´IMPLÉMENTATION

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