Étape 5: Points d’arrêt, locales et registres
Donc, nous allons jeter un oeil à la fonction « setLEDs ». Soit il est reçoit une valeur incorrecte ou recevoir la valeur de droite mais affichant une valeur incorrecte (ou une étrange combinaison des deux).
Faites défiler jusqu'à la première ligne de la fonction setLEDs (ligne 22, voir image 1). Cliquez-droit sur n’importe quelle partie de cette ligne et sélectionnez "Toggle Breakpoint (Code)". Notez le point rouge à gauche de cette ligne de code ? Vous pouvez double-cliquer dans cette marge pour des points d’arrêt ainsi branché/débranché. (image 2) Un point d’arrêt est un point le dans le code où l’exécution du programme se brisera ce qui vous permet de déboguer.
Avec le point d’arrêt défini, appuyez sur le "Reset" (
Pour l’instant, juste comprendre, que si un point d’arrêt est défini lorsque vous démarrez votre code, il va prendre une seconde supplémentaire ou deux pour atteindre principal.
Ouf... pas grave. La flèche verte est à la première ligne principale actuelle (ligne 50, voir image 3) ? Génial, maintenant nous pourrions simple étape (c'est-à-dire "Step Into" (
Presque immédiatement, la flèche verte défile à la ligne 22. Pour obtenir une meilleure idée de ce que fait cette fonction, sélectionnez "affichage"→"locaux" dans le menu. (image 4) Dans la fenêtre qui s’affiche, la variable locale «valeur» est affichée avec... euh... sa valeur, « 0x1e ». Un clic droit sur la variable dans la fenêtre variables locales vous permet de changer la notation de base de la valeur. Changez-la en decimal et avis, maintenant que la fonction en effet transmise le numéro correct (30).
Étant donné que cette fonction ne traite qu’une seule variable, et nous savons que c’est correct, nous allons fermer la fenêtre "variables locales". Maintenant, sélectionnez "affichage" → "s’inscrire" dans le menu. Dans la fenêtre "s’inscrire", modifiez la liste déroulante pour afficher « Port 1/2 ». Développez l’arborescence "P1OUT". (image 5)
P.0 et P.7 peuvent avoir des valeurs aléatoires mais P.1 – P.6 devraient tous être zéro. Appuyez sur "Step Into" (
Notez que la valeur seulement vire au rouge si le Registre est modifié, donc après l’exécution de ligne 45, le Registre est rouge et montre un 1 au lieu de la valeur prévue 0. Nous avons trouvé notre bug ! On dirait que j’ai inversé les opérateurs binaires. (image 6)