Statcktrace : garder la trace de la pile d'appel

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 / Exemple :


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.

Codes Sources

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.