Débogage d’un programme de robot
Inévitablement, un programme ne se comportera pas de la façon dont nous nous attendons à ce qu’il se comporte. Lorsque cela se produit, il devient nécessaire de comprendre pourquoi le programme fait ce qu’il fait, afin que nous puissions lui faire faire ce que nous voulons qu’il fasse, à la place. Un tel comportement indésirable du programme est appelé « bogue », et ce processus est appelé « débogage ».
Un débogueur est un outil utilisé pour contrôler le flux du programme et surveiller les variables afin d’aider au débogage d’un programme. Cette section décrit comment configurer une session de débogage pour un programme de robot FRC®.
Note
Pour les utilisateurs débutants qui ont besoin de déboguer leurs programmes, mais ne savent pas/n’ont pas le temps d’apprendre à utiliser un débogueur, il est souvent possible de déboguer un programme simplement en imprimant l’état du programme pertinent à la console. Cependant, il est fortement recommandé que les élèves finissent par apprendre à utiliser un débogueur.
Exécution du Débogueur
Appuyez sur Ctrl+Shift+P et tapez WPILib
ou cliquez sur WPILib Menu Item pour ouvrir la palette de commandes avec WPILib pré-rempli. Tapez Debug et sélectionnez l’élément de menu Debug Robot Code pour démarrer le débogage. Le code sera téléchargé sur le roboRIO et commencera le débogage.
Points d’interruption
Un point d’interrogation ou « point d’arrêt » est une ligne de code à laquelle le débogueur suspendra l’exécution du programme afin que l’utilisateur puisse examiner l’état du programme. Ceci est extrêmement utile lors du débogage, car cela permet à l’utilisateur de suspendre le programme à des points spécifiques du code problématique pour déterminer où exactement le programme s’écarte du comportement attendu.
Le débogueur s’arrêtera automatiquement au premier point d’arrêt qu’il rencontre.
Configuration d’un point d’interruption
Cliquez dans la marge gauche de la fenêtre du code source (à gauche du numéro de ligne) pour définir un point d’arrêt dans votre programme utilisateur : un petit cercle rouge indique que le point d’arrêt a été défini sur la ligne correspondante.
Débogage avec des instructions d’impression
Une autre façon de déboguer votre programme consiste à utiliser des instructions d’impression dans votre code et à les afficher à l’aide du RioLog dans Visual Studio Code ou de la Driver Station. Les instructions imprimées doivent être ajoutées avec précaution car elles ne sont pas très efficaces, surtout lorsqu’elles sont utilisées en grande quantité. Ils doivent être supprimés pour la compétition car ils peuvent provoquer des dépassements de boucle.
System.out.print("example");
wpi::outs() << "example\n";
Débogage avec NetworkTables
Les NetworkTables peuvent être utilisées pour partager les informations du robot avec votre ordinateur de débogage. Les NetworkTables peuvent être visualisées avec votre tableau de bord préféré ou avec OutlineViewer. Un avantage de NetworkTables est que des outils comme Shuffleboard peuvent être utilisés pour analyser graphiquement les données. Ces mêmes outils peuvent ensuite être utilisés avec les mêmes données pour fournir ultérieurement une interface opérateur pour vos pilotes.
Apprendre encore plus
To learn more about debugging with VS Code see this link.
Some of the features mentioned in this VS Code article will help you understand and diagnose problems with your code. The Quick Fix (yellow light bulb) feature can be very helpful with a variety of problems including what to import.
L’un des meilleurs moyens d’éviter d’avoir à déboguer autant de problèmes est de faire des tests unitaires.
Vérifier que votre robot fonctionne dans Simulation est également un excellent moyen d’éviter d’avoir à effectuer un débogage complexe sur le robot réel.