2009/5/30 Emil Dotchevski <emildotchevski@gmail.com>:
Long shot, but it looks like you have ABI conflict of some sort. Could you post a simple, complete program that demonstrates your problems?
Here is the complete sourcecode of a Win32 console application that reproduces my problem. And shame on me, I forgot to mention that my application as well as the Boost libraries uses STLport version 5.0.2 #define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers #include <stdio.h> #include <tchar.h> #include <boost/exception.hpp> class MyBoostException : public boost::exception { public: MyBoostException() { /*do nothing*/ }; virtual ~MyBoostException() { /*do nothing*/ }; }; void DoSomething() { throw MyBoostException() << boost::throw_file( _T(__FILE__) ) << boost::throw_line( __LINE__ ) << boost::throw_function( _T("DoSomething()") ); } int _tmain( int argc, _TCHAR* argv[] ) { try { DoSomething(); } catch( MyBoostException& ex ) { boost::shared_ptr<const int> pLine = boost::get_error_info<boost::throw_line>(ex); boost::shared_ptr<const char* const> pMethod = boost::get_error_info<boost::throw_function>(ex); const char* sMethod = *pMethod; boost::shared_ptr<const char* const> pFile = boost::get_error_info<boost::throw_file>(ex); const char* sFile= *pFile; std::string info = boost::diagnostic_information( ex ); const char* sString = info.c_str(); } return 0; }