- Formations
- conversion_path Parcours & Formations
- science Projets
- data_object Exercices de code
- psychology Exercices IA
- quiz Quiz
- Articles
- rss_feed Blog
- sort_by_alpha Glossaire
- menu_book Guides
- help_center FAQ
- media_link Ressources
- Communauté
- groups La communauté
- forum Questions
- live_tv Mentorats
- science Projets mensuels
- Formations
- conversion_path Parcours & Formations
- science Projets
- data_object Exercices de code
- psychology Exercices IA
- quiz Quiz
- Articles
- rss_feed Blog
- sort_by_alpha Glossaire
- menu_book Guides
- help_center FAQ
- media_link Ressources
- Communauté
- groups La communauté
- forum Questions
- live_tv Mentorats
- science Projets mensuels
Inscris-toi
(c'est gratuit !)
Un compte est nécessaire pour participer aux discussions.
Créer un compte personlive_helpToutes les questions
Corentin
11 janvier 2024 - 11 janvier 2024 à 16:54
checkConversation résolue
2 réponses
Breakpoint ne fonctionne pas
Bonjour ! J'essaye les breakpoint dans Visual studio code mais je pense que je ne comprends pas le fonctionnement, ou qu'il ne marche pas. J'ai repris le code de la …
00:00:00 :Dans cette vidéo, on va voir plusieurs principes de débugage que vous allez retrouver, peu importeles outils que vous utilisez pour écrire votre code. Alors, il y a plusieurs concepts que j'ai
00:00:10 :écrits en anglais, donc les quatre derniers concepts entre guillemets, puisque généralement dans leséditeurs de code ou environnement de développement, il est rare que vous ayez la traduction de cestermes, donc je préfère vous les montrer en anglais puisque c'est probablement sous cetteforme que vous allez les retrouver. Donc le premier point qu'on va voir, c'est ce qu'on
00:00:27 :appelle les points d'arrêt, en anglais les breakpoints. Les points d'arrêt, c'est vraimentce qui est au centre du débug et vous allez généralement retrouver ces points d'arrêt dansla marge à côté du numéro de la ligne, qui sont représentés donc par un point rouge. Et donc
00:00:42 :généralement, pour mettre un point d'arrêt, il suffit de cliquer ou de double cliquer dans lamarge à côté d'une ligne pour spécifier que vous voulez avoir un point d'arrêt à ce niveau-ci. Donc
00:00:52 :le point d'arrêt, ce que ça va faire, c'est que ça va arrêter votre script avant d'exécuter laligne où il y a le point d'arrêt. Donc là, avec le point d'arrêt à la ligne 5, Python va lancer
00:01:01 :mon script et avant de faire le print et d'appeler donc la fonction add dans ce cas-ci, il va s'arrêteret va m'indiquer où il est rendu dans le script. Donc à ce moment-là, je vais avoir un aperçu des
00:01:12 :variables qui sont définies dans l'espace global ou local de mon script, je vais avoir une idée desfonctions qui sont dans la mémoire de mon script, etc. Donc tous les objets, tout ce qui a été
00:01:22 :déjà exécuté par Python, je vais y avoir accès, je vais pouvoir l'analyser et ensuite on va avoirdifférentes options pour continuer l'exécution de notre script. Avant de vous montrer dans le
00:01:32 :détail toutes ces options pour résumer l'exécution de votre script après un point d'arrêt, il fautsavoir qu'il y a certains points d'arrêt qui peuvent être ce qu'on appelle conditionnels,c'est-à-dire que vous allez pouvoir entrer certaines conditions pour que le point d'arrêtse déclenche. Par exemple, vous pouvez avoir un point d'arrêt qui ne se déclenche que si une
00:01:50 :condition est vraie, donc par exemple si une variable est égale à un certain nombre ou sivous avez une fonction qui est définie, eh bien le point d'arrêt va être déclenché. Et si ce n'est
00:02:00 :pas le cas, donc si votre variable n'a pas atteint cette valeur ou que votre fonction n'est pasdéfinie, le point d'arrêt ne sera pas déclenché. Vous avez également la possibilité d'avoir un
00:02:09 :point d'arrêt qui ne se déclenche que si vous êtes passé un certain nombre de fois sur laligne de code. Donc par exemple si vous avez une boucle et vous voulez que votre script s'arrête
00:02:18 :en mode debug uniquement si vous êtes passé au moins cinq fois sur le point d'arrêt, eh bienc'est également possible avec les points d'arrêt conditionnels. Donc c'est une fonction un peu
00:02:27 :plus avancée des points d'arrêt qu'on ne connaît pas généralement quand on est débutant. Lespoints d'arrêt fonctionnent très bien généralement pour faire un debug assez simple, mais sachezquand même que les points d'arrêt conditionnels existent dans la plupart des éditeurs de code etenvironnement de développement. On a ensuite donc ces quatre termes que je vais vous détailler qui
00:02:44 :sont Resume, Step Over, Step In et Step Out. Ces quatre termes sont généralement représentés parce type d'icône, alors ça peut varier selon les éditeurs. Là j'ai pris les icônes que vous
00:02:54 :retrouverez dans Visual Studio Code. La première option qu'on a, qui est la plus simple, c'estResume. Donc Resume qui veut dire résumer ou reprendre en français, qui nous permet de continuer
00:03:04 :l'exécution du script jusqu'au prochain point d'arrêt. Donc par exemple ici j'ai mis deux pointsd'arrêt à la ligne 7 et à la ligne 10. Donc si je lance ce script en mode debug, le debugger va
00:03:15 :s'arrêter avant d'exécuter la ligne 7 et si on clique sur Resume, il va continuer et il va passerdirectement au prochain point d'arrêt, donc dans ce cas-ci à la ligne 10, et il ne s'arrêtera passur la ligne 8. Donc on passe directement à la ligne 8 et on va de 7 à 10, puisque c'est à la
00:03:31 :ligne 10 qu'il y a le prochain point d'arrêt. Et à chaque fois qu'on va cliquer sur Resume,comme ça il va chercher le prochain point d'arrêt et exécuter tout le script jusqu'à ce pointd'arrêt. Donc là dans ce cas-ci on n'a plus rien après, donc si je reclique sur Resume,
00:03:43 :il va juste exécuter la ligne 10 et terminer le script. On a ensuite Stepover. Alors Stepover,ça nous permet de continuer l'exécution ligne par ligne, donc même si on n'a pas de point d'arrêt.
00:03:54 :Donc dans ce cas-ci on va s'arrêter à la ligne 7 puisqu'on a un point d'arrêt et si je veuxvoir ce qui se passe à la ligne 8, je peux cliquer sur Stepover et là le debugger va s'arrêter à laprochaine ligne, donc il va exécuter la ligne 7 et il va s'arrêter à la ligne 8. Et on peut
00:04:10 :utiliser Stepover autant de fois qu'on veut pour exécuter notre code ligne par ligne, même si onn'a pas mis de point d'arrêt. Donc là si je reclique sur Stepover, ça ferait la même chose dans ce
00:04:18 :cas-ci que Resume une fois rendu à la ligne 8, puisque avec Resume on s'en va au prochain pointd'arrêt, donc à la ligne 10, et avec Stepover on s'en va à la prochaine ligne, donc la ligne 10 dansce cas-ci également. Donc là si je clique sur Stepover, je me rends jusqu'à la ligne 10. Elle
00:04:33 :n'est pas exécutée tant que je n'ai pas cliqué sur Stepover bien sûr, puisqu'on s'arrête avant quela ligne soit exécutée, et donc je peux terminer le script en cliquant une dernière fois sur Stepoverpour aller à la fin de mon script. On a ensuite Stepin, donc Stepin ça permet de rentrer dans le
00:04:47 :détail d'une ligne. Donc par exemple ici je m'arrête à la ligne 10 et si je clique sur Stepoverou Resume, je vais exécuter la ligne au complet. Mais imaginons à ce moment-là que je souhaite
00:04:58 :voir ce qu'il se passe en détail à l'intérieur de ma fonction Add, et bien je peux utiliser cettefonction Stepin pour rentrer à l'intérieur de la fonction Add qui est appelée à la ligne 10,et dans ce cas-ci le débuggeur va donc se rendre à la première ligne de code qui est contenue dans
00:05:12 :ma fonction Add. Et à ce niveau-là on pourra ensuite choisir de résumer le script donc avecResume ou là encore de faire du ligne par ligne en utilisant par exemple Stepover. L'autre option
00:05:23 :qu'on a une fois qu'on est rendu dans un bloc comme celui-ci, c'est Stepout. Donc là imaginonsque je sois à l'intérieur de cette fonction Add et que je ne souhaite pas exécuter chaque lignede code par exemple avec Stepover mais que je veux juste exécuter la fonction au complet pour
00:05:38 :ressortir ensuite, et bien je peux utiliser Stepout qui va ressortir de cette structure. Donc dans cecas-ci il va juste exécuter la structure conditionnelle, le return, et revenir au niveaude la ligne 10. Donc voilà pour ces quatre options Resume, Stepover, Stepin, Stepout qui
00:05:54 :nous permettent de contrôler très précisément l'exécution de notre code. Donc généralement oncommence par mettre des points d'arrêt à des endroits qu'on identifie comme problématiqueset après si jamais lors de l'exécution du debug on se rend compte qu'on aimerait avoir un peuplus de détails, qu'on aimerait s'arrêter sur une ligne ou rentrer à l'intérieur d'une structure,
Ce n'est pas fini...
✋
Tu as complété % du parcours 🔥
Termine l'intégralité de la formation pour pouvoir débloquer ton attestation de réussite.