I have built podofo 0.9.5 as a dynamic library on linux x64. the following code aborts in the PdfDocument constructor, but only if notcalled exists:
#include "podofo/podofo.h" int main(int argc, char** argv) { printf("%s:%i\n",__FILE__,__LINE__); PoDoFo::PdfMemDocument* doc = new PoDoFo::PdfMemDocument(); // exception here printf("%s:%i\n",__FILE__,__LINE__); doc->Load("test2-annotated.pdf"); printf("%s:%i\n",__FILE__,__LINE__); } void notcalled(PoDoFo::PdfAnnotation* anno) { PoDoFo::PdfObject* obj = anno->GetObject(); printf("%i\n", obj->HasStream()); } if notcalled does *not* exist, it works as expected. $ g++ -std=gnu++11 podofotest.cpp -L build-podofo-0.9.5/src -l podofo -I podofo-0.9.5 -I build-podofo-0.9.5 LD_LIBRARY_PATH=build-podofo-0.9.5/src gdb ./a.out (gdb) bt #0 0x00007ffff7008428 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:54 #1 0x00007ffff700a02a in __GI_abort () at abort.c:89 #2 0x00007ffff764184d in __gnu_cxx::__verbose_terminate_handler() () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6 #3 0x00007ffff763f6b6 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6 #4 0x00007ffff763f701 in std::terminate() () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6 #5 0x00007ffff763f919 in __cxa_throw () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6 #6 0x00007ffff7a7fd27 in PoDoFo::PdfVariant::DelayedLoadImpl() () from build-podofo-0.9.5/src/libpodofo.so.0.9.5 #7 0x00000000004015b2 in PoDoFo::PdfVariant::DelayedLoad() const () #8 0x00007ffff7a48d9a in PoDoFo::PdfVariant::GetDictionary() () from build-podofo-0.9.5/src/libpodofo.so.0.9.5 #9 0x00007ffff7a7e829 in PoDoFo::PdfObject::PdfObject(PoDoFo::PdfReference const&, char const*) () from build-podofo-0.9.5/src/libpodofo.so.0.9.5 #10 0x00007ffff7a9c67f in PoDoFo::PdfVecObjects::CreateObject(char const*) () from build-podofo-0.9.5/src/libpodofo.so.0.9.5 #11 0x00007ffff7ac48b3 in PoDoFo::PdfDocument::PdfDocument(bool) () from build-podofo-0.9.5/src/libpodofo.so.0.9.5 #12 0x00007ffff7b0bf6f in PoDoFo::PdfMemDocument::PdfMemDocument() () from build-podofo-0.9.5/src/libpodofo.so.0.9.5 #13 0x0000000000400c16 in main () clang++ and g++ behave the same. valgrind complains about an uninitialized value in the error case Florian ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ Podofo-users mailing list Podofo-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/podofo-users