Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| tester un programme et pouvoir l’arrêter. | |
| | Auteur | Message |
---|
Invité Invité
| Sujet: tester un programme et pouvoir l’arrêter. Ven 27 Mai 2011 - 19:30 | |
| Suite à la demande de enform pour savoir comment arrêter un programme bogué, j'ai fais ce petit programme qui le permet. J'avais fais un programme mode trace dans lequel j'avais inclus cette possibilité, et c'est sur la même réflexion que ce programme est conçu. D'abord une chose importante si vous employez ce programme: une boucle ne pourra être arrêté que si, et seulement si, la boucle se fait sur plusieurs lignesainsi: - Code:
-
for a=1 to 100000:next a ne pourra pas être interceptée, alors que: - Code:
-
for a=1 to 100000 next a
pourra l'être. Utilisation du programmeplusieurs possibilités avec les avantages et les inconvénients de chacune 1: on fait un exécutable du programme. Le programme que l'on veut tester, on fait: CTRL A, et CTRL C pour le copier, puis on lance l'exécutable, et votre programme s'exécute tout en pouvant le stopper à tout moment. 2: on ne fait pas d'exécutable, mais après avoir copier son programme dans le presse papier, on clique sur l'onglet qui le programme que j'ai fais. Cela marche de la même façon. Mais, le programme ayant une fonction CHAIN, cela bloque l'éditeur, il faut donc ouvrir un nouvel onglet, et le fermer ensuite. 3: la dernière ligne qui est: - Code:
-
chain "C:\temp\teste" , vous la mettez en remarque avec REM ou apostrophe, et ensuite vous ouvrez le fichier que j'ai mis sous: "C:\temp\teste.bas" pour le lancer. programme: - Code:
-
rem essai d'arrêter un programme: (cosmos70) dim a,a$,debloc_ligne% ,b memo 1:clipboard_paste 1:bar_horizontal 1 :hide 1 dlist 2 if count(1)>0 item_add 2,"label debloc_prg:dim debloc_ligne%,debloc_stop%" for a=1 to count(1) a$=item_read$(1,a) if a$<>"" item_add 2,"debloc_ligne%=" + str$(a) +":gosub debloc_prg:"+a$ else item_add 2,"" end_if next a end_if item_add 2,"END":' pour le cas ou ce serait p'tit prg sans celui-ci item_add 2,"debloc_prg:" item_add 2," if scancode=19 then repeat:until scancode=0:debloc_stop%= message_warning_yes_no("+chr$(34)+"on continu à la ligne:"+chr$(34)+"+str$(debloc_ligne%)+"+chr$(34)+" ?"+chr$(34)+")" item_add 2," if debloc_stop%=2 then terminate" item_add 2,"return"
file_save 2,"C:\temp\teste.bas" chain "C:\temp\teste"
Apparemment vous avez été rétissant avec mon mode trace, celui-ci est plus simple. Pour les nouveaux, avec une copie du programme, on pert la ligne sur laquelle on travail. Vous pouvez mettre un signet comme la montré Nicola en faisant Ctrl Shift et un chiffre sur le haut du clavier, et vous retrouvez la ligne en faisant Ctrl et le chiffre choisi précédemment. mise à jour à 23h44 modifié samedi 28 mai 8h40 modifié de nouveau à 14h00ajout du numéro de ligne de stoppage du programme remarque: le programme s’arrête avec la touche PAUSE
Dernière édition par cosmos70 le Sam 28 Mai 2011 - 14:03, édité 3 fois |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: tester un programme et pouvoir l’arrêter. Ven 27 Mai 2011 - 22:03 | |
| Idée intéressante !
Voilà ce que j'ai fait: - compilé ton petit programme en .exe, sous le nom Trace.exe - copié le petit programme à tester (avec une boucle infinie) dans le clipboard - lancé Trace.exe
ça m'a paru le mode opératoire le plus simple. Et là on peut effectivement stopper le programme par la touche Escape. On peut donc se sortir en douceur d'une boucle sans fin. Maintenant, ce qui serait intéressant, ce serait de savoir où se situe cette boucle (dans un long programme) ! mais là c'est autre chose... ah oui tiens il faut que je regarde le truc de Nicolas.
| |
| | | enform
Nombre de messages : 42 Date d'inscription : 18/05/2011
| Sujet: Re: tester un programme et pouvoir l’arrêter. Ven 27 Mai 2011 - 23:16 | |
| Astucieux comme toujours,
je vais pouvoir le tester , en ce moment je malmène Trace 2010 et un petit miracle serait le bienvenu ... Tracer un traceur ! Peut-etre impossible .
Merci
| |
| | | Invité Invité
| Sujet: Re: tester un programme et pouvoir l’arrêter. Ven 27 Mai 2011 - 23:49 | |
| Je viens d'apporter les modifications. Le programme s'arrête avec la touche PAUSE, pour avoir une touche différente de celle qu'on utilise dans un programme.
Le numéro de ligne apparaît lors de l'appui sur la touche PAUSE |
| | | Invité Invité
| Sujet: Re: tester un programme et pouvoir l’arrêter. Sam 28 Mai 2011 - 8:45 | |
| J'ai apporté une nouvelle modification. Le programme était inséré après la ligne END dans le programme. Problème: celle-ci n'était pas forcément mise dans le programme, et aussi: il peut y avoir plusieurs instruction END dans un programme. Celà m'arrive régulièrement pour résoudre un problème, et dans ce dernier cas, le sub aurait été copié plusieurs cas. |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: tester un programme et pouvoir l’arrêter. Sam 28 Mai 2011 - 10:06 | |
| Effectivement, c'est mieux comme ça... et j'avais eu à peu près la même idée hier soir pour afficher le numéro de ligne. | |
| | | Invité Invité
| Sujet: Re: tester un programme et pouvoir l’arrêter. Sam 28 Mai 2011 - 14:10 | |
| Je viens d'apporter une modification. Il y avait une erreur d'une ligne au stop de celle-ci A la correction, le programme s'arrêtait car la variable debloc_ligne%, qui faisait double emploi (je le savais vu que cela fonctionnait), faisait le teste d'arrêt du programme (debloc_ligne%=2) C'est fois-ci cela devrait être la bonne! Ai-je le droit de respirer maintenant! @JL35: Il n'y a pas de priorité pour que je réponde à ta place. Je ne suis que le ver de terre qui sort de son trou! Tu es plus ancien que moi sur ce forum, et c'est à toi d'assumer! Un bleu comme moi doit s'écraser! |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: tester un programme et pouvoir l’arrêter. Sam 28 Mai 2011 - 14:25 | |
| Plus ancien, ça ne veut pas dire plus savant ou plus compétent. Hélas ! | |
| | | Invité Invité
| Sujet: Re: tester un programme et pouvoir l’arrêter. Sam 28 Mai 2011 - 15:21 | |
| J'avais fait une dernière modification car sur la ligne en coure de teste, celà commençait à zéro.
Je me demande si c'était pas la bonne ligne. En effet le teste se fait en début de ligne, donc si on stop en appuyant sur Pause, normalement la ligne que l'on veut tester n'est pas encore visitée. Ce qui est visité dans le code sont les parties rajoutées. Finalement la correction sur les numéros de lignes n'est pas bonne.
Quant pensez-vous? @JL35, je ne suis pas plus compétent que toi. La preuve j'ai eu besoin de tes services concernant les rectangles en biais.
Donc MAÎTRE, je m'incline. |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: tester un programme et pouvoir l’arrêter. Sam 28 Mai 2011 - 15:54 | |
| Certes, je suis ton maître en ce qui concerne les rectangles en biais (c'est un truc dont on se sert tous les jours), mais pour le reste...
Je regarde de plus près cette histoire de numéros de lignes, ça ne ma paraît pas bien clair.
Finalement j'ai un petit peu aménagé ton code à ma façon, et je le trouve satisfaisant, avec affichage du numéro de ligne de l'escape (ou pause), et le choix de continuer ou non. Je le garde comme ça, c'est intéressant à avoir sous le coude. | |
| | | Invité Invité
| Sujet: Re: tester un programme et pouvoir l’arrêter. Sam 28 Mai 2011 - 21:38 | |
| Je reste sur ma fin. Depuis mon programme, tu as fait un code de rêve et tu ne me le montres pas. Je crois que je vais mourir idiot ! |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: tester un programme et pouvoir l’arrêter. Sam 28 Mai 2011 - 22:34 | |
| Mais non cosmos, c'est TON code, à peine modifié pour le conformer à mes habitudes, j'ai juste changé 2 ou 3 bricoles, des noms, (et j'ai gardé la touche Escape): - Code:
-
' Stop: Arrêt forcé d'un programme qui boucle, par la touche Escape (d'après cosmos70) ' A compiler en exécutable (.exe) ' Copier le programme à tester dans le clipboard, puis lancer Stop.exe DIM a$, ntr% MEMO 1: CLIPBOARD_PASTE 1: BAR_HORIZONTAL 1: HIDE 1 DLIST 2 IF COUNT(1) > 0 ITEM_ADD 2, "label trace_prg: dim ltr%" FOR ntr% = 1 TO COUNT(1) a$ = ITEM_READ$(1, ntr%) IF a$ <> "" AND LEFT$(TRIM$(a$), 1) <> "'" ITEM_ADD 2, "ltr%=" + str$(ntr%) + ": gosub trace_prg: " + a$ ELSE ITEM_ADD 2, a$ END_IF NEXT ntr% END_IF ITEM_ADD 2, "END": ' à tout hasard, pour le cas où il serait absent ITEM_ADD 2, "trace_prg:" ITEM_ADD 2, "if scancode = 27" ITEM_ADD 2, " repeat: until scancode <>27" ITEM_ADD 2, " if message_warning_yes_no ("+chr$(34)+"Escape ligne: "+chr$(34)+"+str$(ltr%)+"+chr$(34)+" Terminer ?"+chr$(34)+") =1 then terminate" ITEM_ADD 2, "end_if" ITEM_ADD 2, "return" FILE_SAVE 2, "Z:\test.bas" CHAIN "Z:\test" J'ai mis les fichiers de manoeuvre dans Z: parce que c'est mon volume de tests, en mémoire, mais à défaut il faut laisser C:\Temp, sur disque. | |
| | | enform
Nombre de messages : 42 Date d'inscription : 18/05/2011
| Sujet: Re: tester un programme et pouvoir l’arrêter. Sam 28 Mai 2011 - 22:52 | |
| @JL35
Eventuellement , je serais interessé par un ram-disc , j'ai du voir passer ça il y a assez longtemps , mais ou ... . Un fichier batch ?
Si c'est possible ,Merci.
Edit Finalement , J'ai trouvé un soft de 3Mo , mais c'est une install , sans doute d'un driver , et peut-etre pas indispensable . En outre c'est sous 7 , suis un peu méfiant . Mais un petit peu + de précisions , ça ne serait pas mal. | |
| | | Invité Invité
| Sujet: Re: tester un programme et pouvoir l’arrêter. Sam 28 Mai 2011 - 23:53 | |
| A JL35 Je plaisantais concernant le programme. Chacun doit adapter selon ses convenances. Personnellement j'ai mis un icône dans la barre de lancement rapide, comme d'autre d'ailleurs (comme un copier coller pour essayer les codes du forum, qui retire le mot code: du haut et lance le programme (lorsqu'il n'y a pas de fichier à charger évidemment) @enform: le cosmique va se coucher. Bonne nuit! |
| | | 659_minifly
Nombre de messages : 590 Age : 76 Localisation : Valenciennes Nord Date d'inscription : 29/04/2010
| Sujet: Re: tester un programme et pouvoir l’arrêter. Dim 29 Mai 2011 - 0:55 | |
| | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: tester un programme et pouvoir l’arrêter. Dim 29 Mai 2011 - 15:06 | |
| @enform c'est vrai que je ne saurais trop conseiller l'utilisation du ramdisk en programmation, je l'utilise depuis toujours et je m'en trouve fort aise, ça ne laisse pas de trace (inconvénient: ça ne laisse pas de trace, mais il faut en rester conscient). A chaque changement de windows je rame un peu pour le réinstaller, mais avec un peu de recherche sur internet et en tâtonnant un peu on y arrive. Voir ici par exemple: http://www.speedguide.net/articles/ramdisk-guide-131(le mien ne fait que 32M, mais ça me suffit). PS pour le ramdisk, j'ai trouvé ça, qui a l'air très simple d'installation, c'est pour le eeepc mais ça doit pouvoir marcher sur n'importe quelle machine: http://www.eeepc.fr/2008/02/25/installer-un-ramdisk/ | |
| | | enform
Nombre de messages : 42 Date d'inscription : 18/05/2011
| Sujet: Re: tester un programme et pouvoir l’arrêter. Mar 31 Mai 2011 - 23:27 | |
| Merci pour les adresses , surtout si vous avez cherché un moment.
Dataram , j'ai téléch . Bon , on verra . un driver ...
Mais Windows bufferise les données , non ? ça doit etre utile , quand meme .
A +
| |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: tester un programme et pouvoir l’arrêter. Mer 1 Juin 2011 - 11:11 | |
| Certes, mais dans mon esprit (mon usage) ce n'est pas pour la rapidité d'accès ni même économiser le disque dur (enfin au départ c'était un peu ça aussi), c'est pour pouvoir utiliser des fichiers de manoeuvre dont je sais qu'ils seront automatiquement nettoyés après usage, pour ne rien laisser traîner d'inutile sur le disque dur. | |
| | | Contenu sponsorisé
| Sujet: Re: tester un programme et pouvoir l’arrêter. | |
| |
| | | | tester un programme et pouvoir l’arrêter. | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |