
One think you can to is examine the XML created. It might show something obvious. In this case, it says that the start tag doesn't match the end tag which should be easy to find. This might point you to the source of the problem. Robert Ramey Frank Bergemann wrote:
Hi, for a porting job i needed to shift from OSF tru64 to HP-UX V3 ia64 (on both using gcc-3.4.4) There i have stream error exception for boost::serialization data import via XML. The exception is thrown here:
include/boost/archive/impl/basic_xml_iarchive.ipp: template<class Archive> BOOST_ARCHIVE_OR_WARCHIVE_DECL(void) basic_xml_iarchive<Archive>::load_start(const char *name){ // if there's no name if(NULL == name) return; bool result = this->This()->gimpl->parse_start_tag(this->This()->get_is()); if(true != result){ boost::throw_exception( archive_exception(archive_exception::stream_error) ); } // don't check start tag at highest level ++depth; return; }
I.e. it fails to parse the XML data via boost:spirit. I tried to debug with 'gdb', but was impossible for me at the level of boost::spirit parser implementation. Then i was remembering, that there are two sets of boost libs - one "normal" and a "debug" version. So i switched to the debug version - just to see, if i can better dig into the details with 'gdb' with it.
And suddenly the problem was gone. I.e. my application works, if i link with libboost_serialization-gcc-d.a But it doesn't work, if i link with libboost_serialization-gcc.a
I also tried to extract all the stuff from the boost::serialization, that is used by my application, into a little test program. Just to feed in the same XML string, that fails for my application. I wanted to see, that i can re-produce the problem - but for a minimum program. - for using that next to evaluate deeper. But - unfortunately - for my test programm it works (with both library versions, "debug" and "normal" one).
So it is really hard to find the reason for the problem. I also checked about compiler support on the boost.org pages. And actually it was only boost lib 1.38.0, which mentions HP-UX IA64 together with gcc. But that was gcc-4.2.1 (i use 3.4.4.). Before 1.38.0, it was alway the HP native compiler (not gcc). After 1.38.0 HP-UX is not mentioned at all anymore. So i guess i am generally in bad conditions for my "constellation" (HP-UX ia64 V3, gcc-3.4.4, boost 1.33.1).
What is the difference about "debug" lib image and "non-debug" lib image? Is it just optimization level for the compiler? Do you have any hint for me? It might be a problem of gcc-3.4.4 itself on hp-ux (i'll check). But it would be interesting to here, if s.o. else had the same problem(?!)
- many thanks!
Frank Bergemann
____________________________________________________________________ WEB.DE MillionenKlick: Kostenlos tippen, täglich 1 Million gewinnen! http://produkte.web.de/go/07/