Hi,

> - 2.3.2 and 2.3.90 : segfault (I have some gdb backtrace, hinting to
> mol2format.cpp or malloc.c, if anybody if able to read that output)
> - 2.2.3, 2.3.0 and 2.3.1: openbabel seems to be unable to open the file
> (although the C++ program can read it without any problem).

You might get more useful information if you run your program from
>> valgrind instead of gdb (or valgrind with option "--db-attach=yes" to
>> get the best of both).
>>
>>
>
I'm still stuck with the segfault error, so below is the valgring output,
but I'm not sure where I should look now (my C++ program? trying an other
version of libstdc++? looking for a bug in openbabel .cpp or .h files?), if
anybody may have a hint:


==4279== Invalid read of size 4
==4279==    at 0x93665D: __dynamic_cast (in /usr/lib/libstdc++.so.6.0.13)
==4279==    by 0x5CFBF05:
OpenBabel::MOL2Format::ReadMolecule(OpenBabel::OBBase*,
OpenBabel::OBConversion*) (base.h:278)
      T* CastAndClear(bool clear=true)
        {
          T* pOb = dynamic_cast<T*>(this); # line 278
          if(pOb && clear)// Clear only if this is of target class
            Clear();

==4279==    by 0x424D7B0: OpenBabel::OBConversion::Read(OpenBabel::OBBase*,
std::istream*) (obconversion.cpp:825)
    pInStream->imbue(cNumericLocale);

    bool success = pInFormat->ReadMolecule(pOb, this); # line 825
    // return the C locale to the original one
    obLocale.RestoreLocale();


==4279==    by 0x424DB05:
OpenBabel::OBConversion::ReadFile(OpenBabel::OBBase*, std::string)
(obconversion.cpp:1003)
      }

    return Read(pOb,ifs); # line 1003
  }

==4279==    by 0x8082D40: main
==4279==  Address 0xfffffff8 is not stack'd, malloc'd or (recently) free'd


gdb output at this step (compared to valgrind, is additionnally citing
"mol2format.cpp:72"):

#0  adjust_pointer<void> (src_ptr=0xbecb2c94, src_type=0x4340820,
dst_type=0x4340fe0, src2dst=0)
    at ../../../../libstdc++-v3/libsupc++/tinfo.h:77
#1  __cxxabiv1::__dynamic_cast (src_ptr=0xbecb2c94, src_type=0x4340820,
dst_type=0x4340fe0, src2dst=0)
    at ../../../../libstdc++-v3/libsupc++/dyncast.cc:56
#2  0x05cfbf06 in CastAndClear<OpenBabel::OBMol> (this=0x5d00488,
pOb=0xbecb2c94, pConv=0xbecb2a9c)
    at /opt/OPENBABEL/openbabel-2.3.2/src/include/openbabel/base.h:278
#3  OpenBabel::MOL2Format::ReadMolecule (this=0x5d00488, pOb=0xbecb2c94,
pConv=0xbecb2a9c)
    at /opt/OPENBABEL/openbabel-2.3.2/src/src/formats/mol2format.cpp:72
#4  0x0424d7b1 in OpenBabel::OBConversion::Read (this=0xbecb2a9c,
pOb=0xbecb2c94, pin=0x56283a0)
    at /opt/OPENBABEL/openbabel-2.3.2/src/src/obconversion.cpp:825
#5  0x0424db06 in OpenBabel::OBConversion::ReadFile (this=0xbecb2a9c,
pOb=0xbecb2c94, filePath="1lrh_0-NLA-1.mol2")
    at /opt/OPENBABEL/openbabel-2.3.2/src/src/obconversion.cpp:1003
#6  0x08082d41 in main ()




==4279==
==4279==
==4279== Process terminating with default action of signal 11 (SIGSEGV)
==4279==  Access not within mapped region at address 0xFFFFFFF8
==4279==    at 0x93665D: __dynamic_cast (in /usr/lib/libstdc++.so.6.0.13)
==4279==    by 0x5CFBF05:
OpenBabel::MOL2Format::ReadMolecule(OpenBabel::OBBase*,
OpenBabel::OBConversion*) (base.h:278)
==4279==    by 0x424D7B0: OpenBabel::OBConversion::Read(OpenBabel::OBBase*,
std::istream*) (obconversion.cpp:825)
==4279==    by 0x424DB05:
OpenBabel::OBConversion::ReadFile(OpenBabel::OBBase*, std::string)
(obconversion.cpp:1003)
==4279==    by 0x8082D40: main




Many thanks,
Regards,
Pascal
------------------------------------------------------------------------------
Is your legacy SCM system holding you back? Join Perforce May 7 to find out:
&#149; 3 signs your SCM is hindering your productivity
&#149; Requirements for releasing software faster
&#149; Expert tips and advice for migrating your SCM now
http://p.sf.net/sfu/perforce
_______________________________________________
OpenBabel-discuss mailing list
OpenBabel-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openbabel-discuss

Reply via email to