begin process at 2008 07 04 01:00:09
1 204 456 membres
3 nouveaux aujourd'hui
14 114 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

PRINTSTACKTRACE - PILE DES APPELS DES FONCTIONS ET PROCÉDURE


Information sur la source



Description

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.

Conclusion

Il y a deux tests, les erreurs ne sont pas générées au même niveau.

N'hésitez pas à donner des idées, meilleures, j'en suis sûr ;o) ou des précisions si je ne suis pas clair dans mes explications.

++

Moustachu

PS : L'idée d'utilisation d'un singleton pour réaliser un StackTrace a elle aussi été honteusement pompée d'un article lu sur le web dont  j'ai oublié à peu près tout, sauf qu'il existe. Si quelqu'un le retrouve, j'aimerai bien savoir comment ils s'y sont pris.
Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

    Aucun commentaire pour le moment.

Ajouter un commentaire

Pub



Appels d'offres

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS