У меня есть тестовая программа, которая пытается проанализировать пример xml на SLES11, но в результате возникает ошибка сегментации. Однако, если я ссылаюсь без libdb2, то это работает нормально.
g ++ - 8.3 -o testXmlParser main. cpp -m31 -lxml2
Добавлен -ldb2, и я получаю упомянутую ошибку сегментации, а до этого "1: ошибка синтаксического анализатора: документ empty "
g ++ - 8,3 -o testXmlParser main. cpp -m31 -lxml2 -ldb2
Мой код:
#include <libxml/parser.h>
#include <libxml/tree.h>
#include <iostream>
int main ()
{
xmlDoc *doc = NULL;
xmlNode *root_element = NULL;
std::cout << "log1" << std::endl;
doc = xmlParseEntity("/tmp/testXML.xml");
std::cout << "log2" << std::endl;
root_element = xmlDocGetRootElement(doc);
std::cout << "root element: "<<root_element->name << std::endl ;
return 0;
}
И callstack:
#0 0x7b30399e in free () from /lib/libc.so.6
#1 0x7bb3bb92 in destroy () from /data/db2inst1/sqllib/lib32/libdb2.so.1
#2 0x7bb3cdf4 in gzclose () from /data/db2inst1/sqllib/lib32/libdb2.so.1
#3 0x7d1896f0 in ?? () from /usr/lib/libxml2.so.2
#4 0x7d187e80 in xmlFreeParserInputBuffer () from /usr/lib/libxml2.so.2
#5 0x7d1602f4 in xmlFreeInputStream () from /usr/lib/libxml2.so.2
#6 0x7d160336 in xmlFreeParserCtxt () from /usr/lib/libxml2.so.2
#7 0x7d17427c in xmlSAXParseEntity () from /usr/lib/libxml2.so.2
#8 0x00400c02 in main ()
Не могли бы вы помочь мне решить эту проблему?
Это тестовая программа, db2 здесь не используется, но используется в нашем программном обеспечении, откуда возникает эта проблема.