Un mode "trace" a été codé et testé.
TRACE_ON nom_fichier : passe en mode trace et crée le fichier de traçage nom_fichier. Le fichier est un fichier texte.
Si le fichier n'existe pas, il est créé, sinon le fichier existant est écrasé par le nouveau.
Ce mode consiste à écrire dans le fichier texte la date, l'heure et le numéro de la ligne en cours d'exécution.
Toute erreur y est également écrite: numéro et libellé d'erreur.
Le fichier est fermé automatiquement dans 2 cas:
- il y a une erreur et aucun ON_ERROR_GOTO a été exécuté
- quand l'exécution est arrivée à la dernière ligne du source (dans le cas où il n'y a pas de END).
TRACE_OFF : sort du mode trace et ferme le fichier de traçage.
Exemple:
- Code:
-
dim a%,b%
trace_on "test.txt"
a%=1
b%=1
trace_off
a%=2
end
Le fichier de traçage test.txt obtenu:
- Code:
-
17/12/2010|14:49:18*** TRACE ON ***
17/12/2010|14:49:18->line=4
17/12/2010|14:49:18->line=5
17/12/2010|14:49:18->line=6
17/12/2010|14:49:18*** TRACE OFF ***
ou encore:
- Code:
-
dim a%,b%
trace_on "test.txt"
for a%=1 to 3
b%=1
next a%
abcd
a%=1
b%=2
trace_off
end
qui donne:
- Code:
-
17/12/2010|20:36:58*** TRACE ON ***
17/12/2010|20:36:58->line=3
17/12/2010|20:36:58->line=4
17/12/2010|20:36:58->line=5
17/12/2010|20:36:58->line=4
17/12/2010|20:36:58->line=5
17/12/2010|20:36:58->line=4
17/12/2010|20:36:58->line=5
17/12/2010|20:36:58->line=4
17/12/2010|20:36:58->line=5
17/12/2010|20:36:58->line=4
17/12/2010|20:36:58->line=5
17/12/2010|20:36:58->line=6
17/12/2010|20:36:58*** ERROR n°32 Illegal Instruction
17/12/2010|20:36:58*** ERROR TRACE OFF ***
Notez que l'erreur à la ligne 6 a entrainé automatiquement un TRACE_OFF et une fermeture de fichier.
Si un ON_ERROR_GOTO est exécuté, il n'y a bien sûr pas de TRACE_OFF automatique:
- Code:
-
dim a%,b%
label erreur
on_error_goto erreur
trace_on "test.txt"
a%=1
b%=1
abcd
a%=2
b%=3
end
erreur:
print "erreur"
trace_off
terminate
donne:
- Code:
-
17/12/2010|20:40:30*** TRACE ON ***
17/12/2010|20:40:30->line=5
17/12/2010|20:40:30->line=6
17/12/2010|20:40:30->line=7
17/12/2010|20:40:30*** ERROR n°32: Illegal Instruction
17/12/2010|20:40:30->line=12
17/12/2010|20:40:30->line=13
17/12/2010|20:40:30*** TRACE OFF ***
Ce mode aidera à la recherche d'erreur qui n'était possible jusqu'à présent que par des points de visualisation qui arrêtaient l'exécution:
message "on passe ici" ou
message "a% vaut"+str$(a%)