begin process at 2012 02 08 21:31:33
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Divers

 > STATCKTRACE : GARDER LA TRACE DE LA PILE D'APPEL

STATCKTRACE : GARDER LA TRACE DE LA PILE D'APPEL


 Information sur la source

Note :
Aucune note
Catégorie :Divers Niveau :Débutant Date de création :25/08/2004 Vu / téléchargé :5 547 / 145

Auteur : BlackGoddess

Ecrire un message privé
Commentaire sur cette source (1)
Ajouter un commentaire et/ou une note

 Description

Ce code est composé de 2 headers, et d'un ficher de test.
Il permet de pouvoir garder la trace de la pile d'appel courante.
Le multithreading est géré.
Cet outil nécéssite boost::thread et boost::shared_ptr (www.boost.org)
Est également inclu une classe permettant de faciliter la construction d'exceptions portant la trace.

singleton.h a été écrit suite a une discussion sur le forum hardware.fr :
http://forum.hardware.fr/hardwarefr/Programmation /sujet-55867-1.htm

Source

  • déclarations : (cf zip pour le code entier + exemple)
  • ---------------------------
  • #ifdef _MSC_VER
  • #define st black::stack_trace black_stacktrace(__FUNCTION__) // __FUNCTION__ pour vc++, merci de me préciser celles des autres compilos
  • #endif
  • #define st_thr black::stack_trace::thread black_stacktrace_thread
  • namespace black
  • {
  • class stack_trace
  • {
  • public :
  • struct thread
  • {
  • thread();
  • virtual ~thread()
  • };
  • stack_trace(const std::string & func);
  • virtual ~stack_trace();
  • static std::string get();
  • static std::string get(const boost::thread &t);
  • class exception_helper
  • {
  • public :
  • const std::string & stack_trace() const;
  • };
  • };
  • }
déclarations : (cf zip pour le code entier + exemple)
---------------------------

#ifdef _MSC_VER
#define st black::stack_trace black_stacktrace(__FUNCTION__) // __FUNCTION__ pour vc++, merci de me préciser celles des autres compilos
#endif
#define st_thr black::stack_trace::thread black_stacktrace_thread

namespace black
{

class stack_trace
{
public :
	struct thread
	{
		thread();
		virtual ~thread()
	};

	stack_trace(const std::string & func);
	virtual ~stack_trace();

	static std::string get();

	static std::string get(const boost::thread &t);
	
	class exception_helper
	{
	public :
		const std::string & stack_trace() const;
	};
};

}

 Conclusion

l'exemple me parait assez clair, si quelqu'un veut des informations supplémentaires, ou trouve une idée d'amélioration, un bug, qu'il n'hésite pas à me contacter.

 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 ENCAPSULATION D'UNE PARTIE DE L'API SOCKET PORTABLE
Source avec Zip HOOKING SOUS NT AVEC CREATEREMOTETHREAD (VC++7, COMPILABLE A...
Source avec Zip CLASSE POUR TRAVAILLER AVEC DES GRANDS NOMBRES ENTIERS
Source avec Zip BOT IRC
Source avec Zip EXEMPLE DE SERVEUR (MULTI-CLIENTS) TCP (WIN32 / VC++) (11 SE...

 Sources de la même categorie

Source avec Zip ÉDITEUR DE RECTANGLES EN CONSOLE par seoseo
CONVERSION DE FICHIER EN FICHIER BMP par seoseo
Source avec Zip DETECTEUR EJP par idpro
Source avec Zip Source avec une capture SHOP MANAGER CONSOLE SUR WINDOWS par antho974
Source avec Zip JOUR DE NAISSANCE par fredg19

Commentaires et avis

Commentaire de BlackGoddess le 26/08/2004 23:58:19

jpense en fait que mon design est tordu, vaudrait mieux mettre une classe porteuse du dictionnaire(std::map) avec des accesseurs en singleton, et laisser stack_trace et thread se contenter d'utiliser ses méthodes

qq1 en pense qqchose ?

 Ajouter un commentaire




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 : 1,622 sec (3)

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