How to get more info on a boost::xml_archive exception

Hi I have written some code that is serializing some object to xml and then trying to deserialize it from a file. This has been working but suddenly I am getting a

terminate called after throwing an instance of 'boost::archive::archive_exception'
  what():  input stream error

So I guess I must have made a breaking change somewhere. The problem is boost is not giving me any more information, is there any way (perhaps compiler flag?) to get more information on the error?

I am using G++, and boost v1.46

Answers


You may enclose the archive function in a try catch block and do logging in case of an exception.

I have done this:

#if LIBRARY_DEBUG
    #define ARCHIVE_TRY try {
    #define ARCHIVE_CATCH } \
        catch(const std::exception& e) { \
            STACK_TRACE; \
            LOG_ERROR(std::string("Exception: "  + e.what())); \
            throw e; \
        }
#else
    #define ARCHIVE_TRY
    #define ARCHIVE_CATCH
#endif

Need Your Help

xoauth.py IMAP token expires after 1 hour

python google-app-engine oauth imap two-legged

I am Google Apps administrator and using xoauth.py and IMAP to download users mails without users password. But this process gets stopped after 1 hour. I searched many blogs and I came to know this...

About UNIX Resources Network

Original, collect and organize Developers related documents, information and materials, contains jQuery, Html, CSS, MySQL, .NET, ASP.NET, SQL, objective-c, iPhone, Ruby on Rails, C, SQL Server, Ruby, Arrays, Regex, ASP.NET MVC, WPF, XML, Ajax, DataBase, and so on.