J'ai un programme qui plante méchament en ce moment.
Je me suis dis : c'est le moment de tester trace_on "nom_de_fichier"
Mais voilà, il y a un hic :
Dans mon prog, je fais un include d'un autre fichier bas.
résultat : Dans le fichier de log obtenu, je suis incapable de savoir si mon erreur se trouve dans le programme principal ou dans mon include...
les numeros de ligne sont, dans ce cas, fantaisistes.... Est-ce qu'il y a moyen d'identifier dans quel fichier .bas on se trouve au moment du plantage ?
Car dans mon fichier de log, en dehors des numeros de lignes bizarre, je ne trouve aucune trace de mon erreur...
Exemple :17/02/2011|15:17:20*** TRACE ON ***
17/02/2011|15:17:20->line=7
17/02/2011|15:17:20->line=8
17/02/2011|15:17:20->line=9
17/02/2011|15:17:20->line=10
17/02/2011|15:17:20->line=11
17/02/2011|15:17:20->line=12
17/02/2011|15:17:20->line=13
17/02/2011|15:17:20->line=15
17/02/2011|15:17:20->line=16
17/02/2011|15:17:20->line=17
17/02/2011|15:17:20->line=19
17/02/2011|15:17:20->line=20
17/02/2011|15:17:20->line=21
17/02/2011|15:17:20->line=23
17/02/2011|15:17:20->line=26
17/02/2011|15:17:20->line=29
17/02/2011|15:17:20->line=257
17/02/2011|15:17:20->line=258
17/02/2011|15:17:20->line=45
17/02/2011|15:17:20->line=46
17/02/2011|15:17:20->line=47
17/02/2011|15:17:20->line=48extrait du prog principal :1 trace_on "log.txt"
2 #include "palette.bas"
3 color_form%=100
4 gosub color_init
5
6
7 label Formcolor,couleur
8 dim i,retour%
9 ...
71 return <- derniere ligne du fichier principalextrait de palette.bas (include): 1 ' ---------------------------------------
2 ' Utilitaire de sélection de couleur
3 ' Auteur : Nardo26
4' Version : 1.3.0 (04/02/2011)
5' ---------------------------------------
6 label color_init,color_lib
7 label ChgtTSV,ChgtRVB,ChgRVBcode,RafrRVBcode,color_activePick,color_pick,color_end
8 dim color_T%,color_S%,color_V%,color_pT,color_pS,color_pV
9 dim color_Red%,color_Green%,color_Blue%,color_RGB$,color_pRGB
10 dim color_pRed,color_pGreen,color_pBlue
11 dim color_i,color_j,color_retour%
12 color_RGB$="000000"
...
27 ' fin de déclaration de la librairie
28 goto color_lib
...
254 color_lib:
255 ' derniere ligne si je regarde le log :
17/02/2011|15:17:20->line=7
cela correspond en fait à la ligne 6 du fichier palette.bas, non ? (ligne 1 du prog principal + n° ligne de l'include. jusque là j'arrive à suivre)
donc normalement lorsque je fais le goto à color_lib (ligne 254)
je devrais avoir :
17/02/2011|15:17:20->line=29 <- goto color_lib (offset_de_include + ligne 28)
17/02/2011|15:17:20->line=255
17/02/2011|15:17:20->line=256
or d'après le log l'étiquette color_lib se trouve en 257....
bizarre non ?
on pourrais dire que la ligne 254 ne contient pas de code puisque c'est une étiquette... ok cela expliquerai la ligne 255 (ligne en dessous de l'étiquette)
mais alors la ligne 256 du fichier log ne correspond à aucune ligne de programme...
Petite suggestion :
Si j'ai par exemple un timer qui se déclenche toutes les 500ms, je vais avoir toute les 500ms la trace de cette routine...
Serait-il possible d'avoir :
trace_open "nom_de_fichier" à la place de trace_on
trace_on -> lance le mode trace
trace_off -> qui stoppe provisoirement le mode trace (sans fermer le fichier de log)
trace_close -> qui stoppe véritablement le mode trace (fermeture du fichier de log)
?