Re: [cgkit-user] segfault help?
Brought to you by:
mbaas
|
From: Matthias B. <mat...@gm...> - 2010-10-31 17:36:53
|
Hi Samuel,
On 29.10.10 22:10, Samuel Potter wrote:
> I'm making a go at getting cgkit fully functional on my setup but have
> run a segfault. To be clear, I'm running Arch Linux (kernel 2.6.35) with
> Python 2.7, and boost 1.43.0-2. The problem seems to be with boost and
> python (specifically libboost_python). I get the segfault attempting to
> render (using render.py) and when importing everything from cgkit.all
> (from cgkit.all import *), but render.py includes this line anyway --
Looks like a problem some people had on Ubuntu a while back.
Unfortunately, that problem hasn't been resolved back then as I wasn't
able to reproduce it.
> Program received signal SIGSEGV, Segmentation fault.
> 0xb73cd48d in __cxa_allocate_exception () from /usr/lib/libstdc++.so.6
> (gdb) where
> #0 0xb73cd48d in __cxa_allocate_exception () from /usr/lib/libstdc++.so.6
> #1 0xb7848c56 in _WorldObjectChildIterator::next() ()
> from /usr/lib/python2.7/site-packages/cgkit/_core.so
This next() method is in wrappers/py_worldobject2.cpp and it looks like
this:
boost::shared_ptr<WorldObject> _WorldObjectChildIterator::next()
{
if (it==itend)
{
throw StopIteration();
}
else
{
boost::shared_ptr<WorldObject> res = it->second;
it++;
return res;
}
}
Now it would be interesting to know which statement causes the seg
fault. Can you step through that in gdb or add some print statements?
Given that the C++ runtime tries to allocate an exception and the above
code does raise an exception, it looks like something is just horribly
wrong (such as version mismatches when compiling some libraries. Do you
have several versions of Boost or gcc on your system?).
- Matthias -
|