Bonjour,
N'ayant jamais mis le nez dans les outils de debug, et ayant eu un collègue au taff qui me demandait si mon langage avait un "mode debug", je reviens vers vous pour m'expliquer un peu de quoi il s'agit...
J'ai bien testé 2.3 trucs avec debug to msgbox, mais je vois pas le principe.
Je demande pas un cours, juste les principes ou fondamentaux...
D'avance merci.
[R] Mode Debug
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
[R] Mode Debug
Modifié en dernier par DimVar le lun. 05 déc. 2011 10:50, modifié 1 fois.
N'évoquons pas la pierre, les jeunes risqueraient d'en poire !
- sylvanie
- Niveau 11

- Messages : 1556
- Enregistré le : jeu. 26 juil. 2007 21:31
- Localisation : Paris
- Status : Hors ligne
Re: [..] Mode Debug
Autoit n'a malheureusement pas vraiment de debugger nativement.
Il existe tout de même des essais plus ou moins concluant. Par exple celui-ci:
http://www.thefoolonthehill.net/drupal/ ... 20Debugger
Quand je l'ai testé il y a déjà plus de 2 ans il avait des petit caprices, mais il a le bon goût de faire du step by step (on éxécute ligne par ligne en appuyant sur une touche, et on a une fenêtre qui indique la valeur des variables, sans avoir à truffer le code de consolewrite, msgbox ...)
On peut faire du "Run to cursor", donc là on éxécute tout jusqu'au curseur (genre on exécute tout une boucle, etc.)
Après dire qu'on parle de mode debug, c'est pas vraiment la notion. Quand un langage possède un mode debug et un mode release, la différence consiste dans le fait que le mode debug embarque des informations relatives au code compilé (chemin relatifs aux sources si on fourni le projet avec l’exécutable, exports des symbole de débogage, etc.)
Ceci permet ensuite à un debbuger d'interagir entre l'exécution du binaire compilé et son code source (fourni du coups avec le binaire) comme si il était interprété (ce qui est déjà le cas pour autoit... mais pour des langage compilé c'est ultra confortable de faire comme si c'étati des scripts). Du coups on peut mettre des point d'arrêt dans le code (break points) qui vont mettre l'execution en pause à un endroit de l'exécution en consulter alors ce que valent les variables, registres, état des piles.
Maintenant pour les astuces / cours de debug je n'en connais pas vraiment. C'est plutôt l'adaptation à l'outil de debug qui fait qu'on trouve des tuto (gdb, ida, ollydbg ...)
Il existe tout de même des essais plus ou moins concluant. Par exple celui-ci:
http://www.thefoolonthehill.net/drupal/ ... 20Debugger
Quand je l'ai testé il y a déjà plus de 2 ans il avait des petit caprices, mais il a le bon goût de faire du step by step (on éxécute ligne par ligne en appuyant sur une touche, et on a une fenêtre qui indique la valeur des variables, sans avoir à truffer le code de consolewrite, msgbox ...)
On peut faire du "Run to cursor", donc là on éxécute tout jusqu'au curseur (genre on exécute tout une boucle, etc.)
Après dire qu'on parle de mode debug, c'est pas vraiment la notion. Quand un langage possède un mode debug et un mode release, la différence consiste dans le fait que le mode debug embarque des informations relatives au code compilé (chemin relatifs aux sources si on fourni le projet avec l’exécutable, exports des symbole de débogage, etc.)
Ceci permet ensuite à un debbuger d'interagir entre l'exécution du binaire compilé et son code source (fourni du coups avec le binaire) comme si il était interprété (ce qui est déjà le cas pour autoit... mais pour des langage compilé c'est ultra confortable de faire comme si c'étati des scripts). Du coups on peut mettre des point d'arrêt dans le code (break points) qui vont mettre l'execution en pause à un endroit de l'exécution en consulter alors ce que valent les variables, registres, état des piles.
Maintenant pour les astuces / cours de debug je n'en connais pas vraiment. C'est plutôt l'adaptation à l'outil de debug qui fait qu'on trouve des tuto (gdb, ida, ollydbg ...)
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
Re: [..] Mode Debug
Merci pour ces qq explications.
N'évoquons pas la pierre, les jeunes risqueraient d'en poire !

