begin process at 2010 02 10 02:40:28
  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é :3 848 / 136

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 CALLOCATOR par troctsch
Source avec Zip HEAPCOLLECTOR par troctsch
Source avec Zip GÉNÉRE UN TABLEAU DE CARACTÉRE AU FORMAT C CONTENANT LE BYTE... par kertimanoff
FRACTIONS EGYPTIENNES par lptm974
BITOPERATOR par FrancoisGauthier

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 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

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,686 sec (4)

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