Invité Invité
| Sujet: petit programme de debuguage Jeu 3 Nov 2011 - 16:40 | |
| J'en avais pas envie, mais je remets mon programme qui était une parenthèse sur un autre sujet, car on est en train de foirer le sujet :système de combat et compétence... La méthode: vous prévoyez un memo assez large pour afficher des lignes de listing du programme. A partir de là, dans un autre onglet, vous mettez ce programme, dont vous changez le numéro en ligne 25, pour qu'il corresponde à votre memo. Cela fait, vous sélectionnez la partie de code à problème avec le curseur, et vous allez dans l'autre onglet pour lancer le programme. Une fois exécuté, le listing modifié est dans le presse papier. Vous retournez dans le programme à déboguer, et vous faites <ctrl V>, cela remplacera le code sélectionné. Vous lancez le programme, et vous voyez toutes les lignes qui s'exécute au fur et à mesure. Il suffit de faire <ctrl Z> pour remettre le programme au départ, et de modifier les erreurs. - Code:
-
dim a,a$ ,v,b$ ,pass ,b full_space 0 :label copie memo 1: width 1,width(0)-200 memo 2:top 2,150:width 2,width(1):height 2,height(0)-300 :height 0,height(0)-500:font_size 2,14 clipboard_paste 1 button 3:left 3,width(1)+10:caption 3,"recopie du code changé":width 3,170:on_click 3,copie
if count(1)>0 for a = 1 to count( 1) a$ = item_read$(1,a) :pass=0 :b$="" repeat v=instr(a$,chr$(34)) if v>0 b$=b$+left$(a$,v-1)+"''":a$= mid$(a$,v+1,len(a$) ) ' item_add 2,b$ end_if until v=0 or scancode = 27 b$=b$+a$ ' ------------ ' ====================================================================================== ' ici item_add 9 représente un objet memo qui a été rajouté au programme ' à déboger, donc le numéro 9 devra être modifier selon un objet libre du programme ' ====================================================================================== ' ------------ if instr(b$,"@")=0 then item_add 2,"item_add 9,"+chr$(34)+b$+":' //"+right$("000"+str$(a),3)+chr$(34) item_add 2,item_read$(1,a) next a end_if end copie: if count(2)>0 b=0 : for a = 1 to count(2) : b=b+len(item_read$(2,a))+2 : next a select_text 2,1,b : a$= select_read$(2) : clipboard_string_copy a$ end_if terminate il y a en ligne 25 ceci: Code: if instr(b$,"@")=0 then item_add 2,"item_add 9,"+chr$(34)+b$+":'............. cela sert pour le cas où on veut voir une variable: on met dans le programme, par exemple: item_add 9,"@ a$="+a$ Lors de la mise en code, la ligne "listing" ne sera pas visible mais seulement le résultat, soit: @ a$=patati-patata Pour moi ce petit programme est plus pratique que TRACE_ON, car on ne list que les lignes qui nous intéresse, et les lignes qui apparaissent lors d'un gosub ne sont pas listées. De plus lorsqu'on fait item_add X,..., pour voir une variable, le résultat est dans le listing, et on voit pourquoi ça marche ou pas, ce qui n'est pas le cas de TRACE_ON je crois. |
|
Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: petit programme de debuguage Jeu 3 Nov 2011 - 17:07 | |
| Bon, du coup, je remets mon commentaire de l'autre sujet: Merci Cosmos, c'est une des façons interessantes de procéder et une fois que l'on en a l'habitude, ça peut faire gagner des heures | |
|