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.
 

Fichier Zip

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

Commentaires et avis

Aucun commentaire pour le moment.

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Appel de procédure en VBA [ par jcgousseff ] Bonjour,N'étant pas un pro de VBA, je cherche la syntaxe pour appeler une procédure ou le nom de la procédure est stocké dans une variableexemple :Sel appel et récupération d'une procédure stockée oracle [ par vbusinor ] bonjour,j'aimerai exécuter une procédure stockée oracle (8) à partir de visual basic et récupérer le résultat de la requête (curseur) sous vb.Merci po Appel de procédure Oracle et VB 6 [ par Raugues ] bonjour,Mon probleme porte sur l'appel de procedures stockées dans oracle, Comment faut il faire????????Qui peut me donner un code exemple pour VB 6Me Utilisation des tableaux comme type de donnée [ par Yohann_1 ] Je débute sur VB et j'ai été surpris parce que j'ai l'impression de créer un type personnalisé à base de tableau. Par exmple si je veux créer un type appel de procédure [ par desir ] Bonjour,mon problème est le suivant:sous excel,j'ai dans le classeur perso.xls divers modules contenant diverses procédures.J'ai un autre classeur, do appel de procédure [ par PatLogan ] Bonjour,Je n'arrive pas à appeler une procédure avec arguments si elle fait partie d'un autre classeur.Est-ce que c'est une histoire de module de clas Récupération de la pile des appels [ par cybergoustaf ] Bonjour!Je voudrais savoir s'il existe une api pour récupérer la pile des appels telle qu'on la voit sous VB6 quand on passe en mode debug.Explication Appel de procédure [ par bouv ] Petite question d'un néophite.quelle est la différence entre :MaFonction Param1, Param2etCall MaFonction(Param1, Param2)Merci++ appel de procédure (création d'objet-suite) [ par liban123 ] Merci pour votre réponse!je voudrai savoir maintenent par quelle instruction il serai possible d'aller activer une procédur présen Appel d'une procédure [ par FASH ] Bonjour à tousje voudrais faire appel à une procédure qui se trouve sur une autre form. Par exemple, j'ai une procédure (combo3_cl


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

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

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,702 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.