Inspecter des objets aux points de contrĂ´le
Objectifs de formation
- DĂ©finir des points de contrĂ´le dans votre code Apex.
- Analyser les objets présents dans la mémoire à l’aide de l’Inspecteur de points de contrôle.
DĂ©finir des points de contrĂ´le dans votre code Apex
Dès que votre vaisseau commence à émettre des erreurs système, vous devez vous ruer sur les journaux pour comprendre les défaillances et les localiser.
De mĂªme, quand votre code Apex gĂ©nère des erreurs, prĂ©sente des problèmes de performances ou ne produit pas les rĂ©sultats attendus, la première Ă©tape consiste Ă identifier le problème Ă l’aide du journal de dĂ©bogage. Rien de plus fastidieux que d’éplucher un journal complet ligne par ligne. C’est lĂ que les points de contrĂ´le entrent en jeu. Les points de contrĂ´le fournissent des instantanĂ©s de ce qui se passe dans votre code Apex Ă des points particuliers de son exĂ©cution.
Vous pouvez définir cinq points de contrôle dans votre code Apex. Les points de contrôle ne sont pas disponibles dans le balisage Visualforce.
EmailMissionSpecialist
que nous avons créée plus tôt.- Sélectionnez File (Fichier) | Open (Ouvrir) et ouvrez la classe
EmailMissionSpecialist
. - SĂ©lectionnez Debug (DĂ©bogage) | Change Log Levels (Modifier les niveaux de consignation).
- Dans la section General Trace Settings for You (Vos paramètres de suivi généraux), cliquez sur Add/Change (Ajouter/Modifier).
- Choisissez FINEST comme niveau de consignation pour
ApexCode
.
Remarque : Pour dĂ©finir des points de contrĂ´le, vous aurez besoin de la permission utilisateur Voir toutes les donnĂ©es. Pour gĂ©nĂ©rer des rĂ©sultats en utilisant des points de contrĂ´le, exĂ©cutez du code avec l’exĂ©cution anonyme, ou dĂ©finissez un marqueur de suivi DEVELOPER_LOG sur vous-mĂªme. Le marqueur de suivi doit avoir un niveau de consignation pour Apex de INFO ou plus. - Pour enregistrer vos modifications, cliquez sur Done (TerminĂ©).
- Pour quitter la boîte de dialogue de modification des niveaux de consignation, cliquez sur Done (Terminé).
Quand votre code s'affiche dans l’éditeur de code source, les numéros de ligne s'affichent sur le côté gauche. Cliquez sur le numéro de la ligne inspectResults(results);
. Le point rouge (1) qui apparaît indique qu’un point de contrôle a été créé.

Vous pouvez maintenant exécuter votre code et l’analyser à l’aide de l’onglet Checkpoints (Points de contrôle).
Onglet Checkpoints (Points de contrĂ´le)
Sous l’onglet Checkpoints (Points de contrôle), vous pouvez voir à quel moment exactement l’exécution de votre code déraille et quelles sont les valeurs des objets à ce point. Exécutons ce code pour voir le point de contrôle en action.
SĂ©lectionnez Debug (DĂ©bogage) | Open Execute Anonymous Window (Ouvrir la fenĂªtre d’exĂ©cution anonyme). Saisissez le code suivant, collez-le et exĂ©cutez-le. N’oubliez pas de remplacer Enter your email address par votre adresse e-mail.
Après avoir bien exécuté le code Apex, ouvrez le journal de débogage et cliquez sur l’onglet Checkpoints (Points de contrôle) pour voir les résultats.

- Le tableau Checkpoints (Points de contrôle) affiche l’espace de nommage, la classe et le numéro de ligne de chaque point de contrôle. Il fournit également la date et l’heure de création de chaque point de contrôle.
- Le tableau Checkpoint Locations affiche le nom de fichier, le numéro de ligne et les itérations captées par le point de contrôle sélectionné.
Double-cliquez sur un point de contrĂ´le du tableau Checkpoints (Points de contrĂ´le) pour afficher les rĂ©sultats enregistrĂ©s dans l’inspecteur de points de contrĂ´le. C’est lĂ que la fĂªte commence.
Inspecteur de points de contrĂ´le
- Heap (MĂ©moire) : affiche tous les objets prĂ©sents dans la mĂ©moire au niveau de la ligne de code oĂ¹ le point de contrĂ´le a Ă©tĂ© exĂ©cutĂ©.
- Symbols (Symboles) : affiche tous les symboles présents dans la mémoire sous forme d’arborescence.
Onglet Heap (MĂ©moire)
- Sous Types, cliquez sur
Messaging.SingleEmailMessage
. - Sous Instances, cliquez sur une instance quelconque de ce type d'objet.
- Sous State (État), vous trouverez les champs de l'objet ainsi que leurs valeurs.

Onglet Symbols (Symboles)
L’onglet Symbols (Symboles) est un moyen simple et rapide de connaître l'état de divers objets à un point de contrôle donné. Les symboles sont des noms uniques qui font référence à des objets spécifiques. L’onglet affiche tous les symboles présents dans la mémoire sous forme d’arborescence.

- Pour effacer les résultats d’un point de contrôle de l’onglet, sélectionnez Debug (Débogage) | Clear (Effacer) | Checkpoint Results Panel (Panneau des résultats des points de contrôle).
- SĂ©lectionnez Debug (DĂ©bogage) | Open Execute Anonymous Window (Ouvrir la fenĂªtre d’exĂ©cution anonyme).
- Exécutez à nouveau la classe
EmailMissionSpecialist
, mais fournissez-lui cette fois une adresse e-mail non valide comme testingemail. - Une fois que vous avez exécuté le code, cliquez sur l’onglet Checkpoints (Points de contrôle).
L’onglet Checkpoints (Points de contrôle) n'affiche aucun résultat parce que l’exécution de votre code n’a pas atteint le numéro de ligne auquel votre point de contrôle est défini.

- SĂ©lectionnez File (Fichier) | Open (Ouvrir) et ouvrez la classe
EmailMissionSpecialist
. - Cliquez sur le numéro de ligne devant
String[] toAddresses = new String[] {address}
. - Sélectionnez Debug (Débogage) | Clear (Effacer) | Checkpoint Results Panel (Panneau des résultats des points de contrôle).
- SĂ©lectionnez Debug (DĂ©bogage) | Open Execute Anonymous Window (Ouvrir la fenĂªtre d’exĂ©cution anonyme).
- Exécutez à nouveau la classe
EmailMissionSpecialist
en fournissant une adresse e-mail non valide comme testingemail. - Cliquez sur l’onglet Checkpoints (Points de contrôle).
Une nouvelle entrée est visible sous l’onglet Checkpoints (Points de contrôle). Vous pouvez désormais analyser les objets présents dans la mémoire à l’aide de l’Inspecteur de points de contrôle.
