On 12 April 2010 19:34, Andrew Dalke <[email protected]> wrote:
> On Apr 12, 2010, at 3:04 AM, Geoffrey Hutchison wrote:
>> You don't mention what version of OB you're using, but imply it's not the
>> latest development code. I'd highly suggest using SVN trunk.
>
> That fails to work, in a much worse way than before.
>
> After working with Noel to update the build instructions for
> working out of SVN, and upgrading my copy of SWIG to 1.3.40
> I got everything built and installed. It doesn't work though.
> Here's my test case.
>
> [xavier:~/ftps/openchord] dalke% cat strange.py
> import openbabel
> obc = openbabel.OBConversion()
> obc.SetInFormat("smi")
SetInFormat should return true for success. Does it?
> mol = openbabel.OBMol()
> obc.ReadString(mol, "c1ccccc1O")
> print "Done."
>
> It crashes in ReadString, which I did by hand.
>
> [xavier:~/ftps/openchord] dalke% python strange.py
> Segmentation fault
>
>
> [xavier:~/ftps/openchord] dalke% gdb `which python`
> GNU gdb 6.3.50-20050815 (Apple version gdb-1346) (Fri Sep 18 20:40:51 UTC
> 2009)
> ... lines omitted ...
> (gdb) run strange.py
> Starting program: /usr/bin/python strange.py
> Reading symbols for shared libraries .++..... done
>
> Program received signal SIGTRAP, Trace/breakpoint trap.
> 0x00007fff5fc01028 in __dyld__dyld_start ()
> (gdb) cont
> Continuing.
> Reading symbols for shared libraries . done
> Reading symbols for shared libraries .. done
> Reading symbols for shared libraries ... done
> Reading symbols for shared libraries . done
> ... many lines omitted ...
> Reading symbols for shared libraries . done
>
> Program received signal EXC_BAD_ACCESS, Could not access memory.
> Reason: KERN_INVALID_ADDRESS at address: 0x0000000000000090
> OpenBabel::SMIBaseFormat::ReadMolecule (this=<value temporarily unavailable,
> due to optimizations>, pOb=<value temporarily unavailable, due to
> optimizations>, pConv=0x1002791a0) at
> /Users/dalke/cvses/ob-trunk/src/formats/smilesformat.cpp:282
> 282 pmol->SetDimension(0);
>
> To show some context
>
> (gdb) l
> 277 obErrorLog.ThrowError(__FUNCTION__,
> 278 smiles + " contained a character '" + smiles[pos] + "' which
> is invalid in SMILES", obError);
> 279 return false;
> 280 }
> 281
> 282 pmol->SetDimension(0);
> 283 OBSmilesParser sp;
> 284
> 285 pos = smiles.find('>');
> 286 if(pos==string::npos)
>
>
> and it's a straight NULL pointer deference.
>
> (gdb) print pmol
> $1 = (class OpenBabel::OBMol *) 0x0
>
>
> The call stack.
>
> (gdb) where
> #0 OpenBabel::SMIBaseFormat::ReadMolecule (this=<value temporarily
> unavailable, due to optimizations>, pOb=<value temporarily unavailable, due
> to optimizations>, pConv=0x1002791a0) at
> /Users/dalke/cvses/ob-trunk/src/formats/smilesformat.cpp:282
> #1 0x000000010146b8bc in OpenBabel::OBConversion::Read (this=0x1002791a0,
> pOb=0x100293b70, pin=<value temporarily unavailable, due to optimizations>)
> at /Users/dalke/cvses/ob-trunk/src/obconversion.cpp:747
> #2 0x000000010147083c in OpenBabel::OBConversion::ReadString
> (this=0x1002791a0, pOb=0x100293b70, input=<value temporarily unavailable, due
> to optimizations>) at /Users/dalke/cvses/ob-trunk/src/obconversion.cpp:895
> #3 0x0000000101155444 in _wrap_OBConversion_ReadString (args=<value
> temporarily unavailable, due to optimizations>) at openbabel-python.cpp:17379
> #4 0x000000010000aff3 in PyObject_Call ()
> #5 0x000000010008a51a in PyEval_EvalFrameEx ()
> #6 0x000000010008acce in PyEval_EvalCodeEx ()
> #7 0x000000010008ad61 in PyEval_EvalCode ()
> #8 0x00000001000a265a in Py_CompileString ()
> #9 0x00000001000a2723 in PyRun_FileExFlags ()
> #10 0x00000001000a423d in PyRun_SimpleFileExFlags ()
> #11 0x00000001000b0286 in Py_Main ()
> #12 0x0000000100000e6c in ?? ()
>
>
> BTW, is there a way to get the version number from OpenBabel?
> In trying to get this all working I ran into snags where I was
> installed into the wrong directory, and I couldn't figure out
> a way to tell if the "import openbabel" I just installed was
> the right one, except by looking at the file timestamp.
>
> Ideally I would like to have a way to get the pybel.py,
> openbabel.py, and underlying shared library versions.
>
> To make sure I have the right extension modules (I
> wondered if I had a version mismatch), I include part
> of what Apple's crash reporter says:
>
>
> 0x101816000 - 0x101a3ffff +libopenbabel.4.dylib 4.0.0
> (compatibility 4.0.0) <A1B64057-4A8A-520C-AD96-4227D6B58DF5>
> /usr/local/lib/libopenbabel.4.dylib
>
> 0x1021ca000 - 0x1021e6ff7 +smilesformat.so ??? (???)
> <7D01F338-7571-62B5-A8EE-53A1C2C62773>
> /usr/local/lib/openbabel/2.2.99/smilesformat.so
>
>
> and some file stamps
>
> -rwxr-xr-x 1 root wheel 3281376 Apr 12 20:19
> /usr/local/lib/libopenbabel.4.0.0.dylib
> lrwxr-xr-x 1 root wheel 24 Apr 12 15:22
> /usr/local/lib/libopenbabel.4.dylib -> libopenbabel.4.0.0.dylib
>
> -rwxr-xr-x 1 root wheel 211456 Apr 12 20:19
> /usr/local/lib/openbabel/2.2.99/smilesformat.so
>
>
> You can see I do have the right shared library here.
>
>
>
> Andrew
> [email protected]
>
>
>
> ------------------------------------------------------------------------------
> Download Intel® Parallel Studio Eval
> Try the new software tools for yourself. Speed compiling, find bugs
> proactively, and fine-tune applications for parallel performance.
> See why Intel Parallel Studio got high marks during beta.
> http://p.sf.net/sfu/intel-sw-dev
> _______________________________________________
> OpenBabel-Devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/openbabel-devel
>
------------------------------------------------------------------------------
Download Intel® Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
OpenBabel-Devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbabel-devel