Espion des messages

Cet utilitaire permet de visualiser dans une liste la trace des messages ou événements qui circulent dans les différents objets créés, au fur et à mesure de leur exécution. Cela correspond à la pile des messages qui existe dans Windows.

 

Il peut être lancé à tout moment avec le raccourci Alt-F11, même chez les clients. (et Alt-F12 pour les Données de l'objet)

 

Cet outil est primordial pour le développeur car il permet de comprendre :

  • le déroulement des événements des modèles

  • à quel moment arrive les événements asynchrones

  • les paramètres reçus pour chaque objet ou méthode

  • les défauts d'optimisation dûs à des appels trop fréquents de méthodes

  • les méthodes gourmandes qui prennent trop de temps

  • les objets ou méthodes qui provoquent un plantage

  • ...

 

 

Les colonnes :

: numéro d'ordre dans la liste.

Objet est composé du code du composant (ou domaine), d'un tiret et du code de l'objet. Entre crochet sera indiqué le numéro de l'instance si il est différent de zéro.

Message : méthode ou évènement. Le décalage à droite tente de donner une hiérarchie aux messages afin de voir les messages parents.

Paramètres : liste des paramètres séparés par des virgules et encadrés par des guillements « ». Faire un clic droit > Paramètres pour obtenir un affichage plus lisible. Attention, toutes les valeurs sont converties en type Chaine.

Infos : contient 4 informations : l'heure du message (minutes, secondes, millisecondes) et les valeurs récupérables par les variables systèmes CtrlCode, CtrlAction et CtrlSup.

 

Les boutons :

Efface vide toute la liste.

Bloque / Débloque arrête / reprend la capture des évènements.

 

Des options supplémentaires sont disponibles en faisant un clic droit sur la liste :

 

 

Les 5 premières options permettent de filtrer l'affichage de la liste. Quand il est indiqué "cet objet", cela concerne en réalité l'instance de cet objet.

 

Uniquement cet objet affiche uniquement les évènements de l'objet sélectionné. C'est l'action par défaut lorsque que l'on double-clique sur la liste.

Masquer cet objet masque les évènements de l'objet sélectionné.

Masquer ce message masque l'évènement sélectionné, quel que soit l'objet.

Filtres ... et Supprimer les filtres permettent de poser des filtres plus complexes.

Masquer les objets systèmes $$ ou SYS* : les objets du moteur d'Oxygène ne vous concernent pas en général et sont masqués par défauts. Ils font partie du domaine $$ ou sont des composants dont le code débute par SYS.

Masquer les messages CTRL_* : les évènements qui débutent par CTRL_ sont des évènements génériques lancés par le moteur afin de vous donner la main à tout moment pour ajouter du code spécifique. Envoyés pour chaque contrôle des écrans, ils peuvent être très nombreux et réduire la lisibilité.

Sans capture des paramètres : dans quelques cas rares, la capture des paramètres peut provoquer de forts ralentissements voire des arrêts brutaux. Essayez cette option si cela vous arrive.

Détail des paramètres affiche une fenêtre permettant de mieux visualiser les paramètres lorsqu'ils sont nombreux ou que leurs contenus sont longs.

Données ouvre la fenêtre de Visualisation des données. Cela ne fonctionne que si l'instance de l'objet est encore en vie.

 

Astuce : Avec le mode maximisé généralisé des fenêtres, l'Espion des messages se retrouve souvent caché derrière les nouvelles fenêtres et même parfois inaccessible. dans ce cas, ajoutez /MODEFENETRE à la ligne de commande, l'Espion se retrouva dans une zone privée à droite.