Bonjour,
Voici un exemple concret de la source déposée il y a quelques jours au sujet des classes singleton (en VB6)
Il s'agit d'un outils de traçage de la pile des appels des fonctions et procédures. Attention, attention, ne nous
emballons pas, cela n'est pas sans contraintes, cela ne se fait malheureusement pas tout seul :
vous allez devoir ajouter à votre fonction/procédure un appel au traceur :o(
Cette source n'a pas la prétention d'être un réel traceur, mais plutôt un paliatif. Toutes les remarques pour l'améliorer sont les bienvenues.
Utilisation :
Vous allez instancier, dans votre procédure ou fonction, la classe clsStackTrace et ajouter votre procédure ainsi
que les paramètres si vous le souhaitez.
L'objet créé va récupérer ou créer l'objet singleton et lui demander d'ajouter la procédure dans la pile des appels.
Tant que votre procédure est en cours de traitement, elle est présente dans la piles des appels de l'objet singleton.
Il est assez difficile de savoir quand on sort d'une procédure (exit sub, erreur récupérée en amont, goto etc...), du coup, on laisse faire le garbage collector de VB décharger les objets. C'est pas top, mais ça a l'air de pas mal fonctionner.
Donc, en fin de procédure, l'objet (instance de clsStackTrace) va être déchargé par VB. Dans la procédure Class_Terminate de la classe clsStackTrace, on demande à l'objet singleton de retirer le nom de la procédure. En fait, on retire le dernier élément de la collection des appels.
Là, je ne suis pas sûr que cela soit toujours juste en cas de multi-threading par exemple mais je
n'ai pas creusé la question.
Au final, on génère une erreur et on demande d'afficher la pile des appels.