Yes,
it occurs inside the loop. The loop is run inside a function:
def setup_angles(m, ps, particles): i = 0 while (i <= particles-3): p1 = ps.get_particle(i) p2 = ps.get_particle(i+2) p3 = ps.get_particle(i+3) ar = IMP.core.AngleRestraint(IMP.core.Harmonic(0, 1), p1, p2, p3) m.add_restraint(ar) i += 3
As for the stack trace, I'm not totally sure about how to do it. I've done the following:
$ gdb python (gdb) run model.py Starting program: /usr/bin/python model.py [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Program received signal SIGSEGV, Segmentation fault. 0x00007ffff5dd5eb0 in IMP::kernel::Particle::get_index() const () from /usr/src/imp/imp-r2.1.1/lib/libimp_kernel.so (gdb)
Davide
On Jan 10, 2014, at 1:12 PM, Daniel Russel wrote: > Hmmm, that code looks fine. Can you get a stack trace for a core dump? When does the core dump occur, in that loop? > > BTW, you can pull the Harmonic out of the loop and share one harmonic between many angle restraints. > > > On Fri, Jan 10, 2014 at 3:52 AM, Davide Baù davide.bau@gmail.com wrote: > Hi, > > I'm having some (random) errors with the AngleRestraint function. > > I get a Segmentation fault (core dumped) error when applying an AngleRestraint restraint like: > > i = 0 > while (i <= particles-3): > p1 = ps.get_particle(i) > p2 = ps.get_particle(i+2) > p3 = ps.get_particle(i+3) > ar = IMP.core.AngleRestraint(IMP.core.Harmonic(0, 1), p1, p2, p3) > m.add_restraint(ar) > i += 3 > > The error is not persistent, meaning that if I run the code severe times, the error disappear and the code ends normally. > > Is there any specify reason for such an error? > > Thanks! > Davide > > > _______________________________________________ > IMP-dev mailing list > IMP-dev@salilab.org > https://salilab.org/mailman/listinfo/imp-dev > > _______________________________________________ > IMP-dev mailing list > IMP-dev@salilab.org > https://salilab.org/mailman/listinfo/imp-dev