begin process at 2012 02 17 01:57:55
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Trucs & Astuces

 > PRINTSTACKTRACE - PILE DES APPELS DES FONCTIONS ET PROCÉDURE

PRINTSTACKTRACE - PILE DES APPELS DES FONCTIONS ET PROCÉDURE




 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

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip Source avec une capture ADDIN VB6 - INDENTEUR DE CODE SIMPLE À LANCER PAR RACCOURCIS...
Source avec Zip Source avec une capture COMBINAISONS DE RÉGIONS
Source avec Zip Source avec une capture REQUÊTES SHAPE AVEC MSHFLEXGRID
Source avec Zip Source avec une capture LISSER LE TEXTE DE N'IMPORTE QUEL CONTRÔLE
Source avec Zip Source avec une capture CRÉER UNE IMAGE EN FUSEAUX

 Sources de la même categorie

Source avec Zip Source .NET (Dotnet) EXPORTER LES IMAGES DE WORD ET D' EXCEL par Le Pivert
Source avec Zip Source avec une capture JEUX DE VERITÉ ET DE FIDELITÉ par billatosco
Source avec Zip IMAGELOARDER par vkitumaini
Source avec Zip Source avec une capture Source .NET (Dotnet) CREER UN CALENDRIER DE POCHE par Le Pivert
Source avec Zip RECHERCHE D'UN ENREGISTREMENT DANS UNE DATATABLE ET POSITION... par erdna

 Sources en rapport avec celle ci

Source .NET (Dotnet) STACKI - PILE par iLgend
Source avec Zip APPEL DE POINTEUR DE FONCTIONS - API SANS LES DECLARER par Renfield
Source avec Zip Source avec une capture PUBLIC SHARED SANS MODULE - VARIABLE SINGLETON : IDENTIFICAT... par PCPT
Source avec Zip Source avec une capture Source .NET (Dotnet) VISUAL BACKUP, SOLUTION DE SAUVEGARDES AUTOMATISÉES par fifrelin70
Source avec Zip Source avec une capture Source .NET (Dotnet) PROCÉDURE STOCKÉE par mehdikobra

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...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,749 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales