Hello all. I have been trying to wrap a third party C++ library with boost::python (first time using boost::python!), and on a very simple example I seem to be getting double free segfaults, so I am here soliciting advice. Does anything stand out?
In gdb, I can't seem to catch it calling any particular destructor more than once. In pure c++, the class I am wrapping does not exhibit any such segfaults on simple usage, eg { CMOOSApp *app = new CMOOSApp(); delete app; } and other classes in the library do not exhibit such segfaults when I wrap them. c++: #include <boost/python.hpp> #include <MOOS/libMOOS/MOOSLib.h> using namespace boost::python; BOOST_PYTHON_MODULE(MOOSCore) { class_<CMOOSApp, boost::noncopyable>("MOOSApp"); } python: import MOOSCore thing = MOOSCore.MOOSApp() results: $ python test.py *** glibc detected *** python: double free or corruption (out): 0x0000000000f92b50 *** ======= Backtrace: ========= /lib64/libc.so.6[0x3b8a4760e6] /lib64/libc.so.6[0x3b8a478c13] /usr/lib64/libboost_python.so.5(_ZN5boost6python15instance_holder10deallocateEP7_objectPv+0x15)[0x7f15ee57a0b5] /usr/lib64/libboost_python.so.5(+0x2a394)[0x7f15ee57a394] /usr/lib64/libpython2.6.so.1.0[0x3b9de9a715] /usr/lib64/libpython2.6.so.1.0[0x3b9de78287] /usr/lib64/libpython2.6.so.1.0(PyDict_SetItem+0xa7)[0x3b9de7acf7] /usr/lib64/libpython2.6.so.1.0(_PyModule_Clear+0x16d)[0x3b9de7c66d] /usr/lib64/libpython2.6.so.1.0(PyImport_Cleanup+0x18f)[0x3b9dee987f] /usr/lib64/libpython2.6.so.1.0(Py_Finalize+0x11b)[0x3b9def28ab] /usr/lib64/libpython2.6.so.1.0(Py_Main+0x596)[0x3b9deff2d6] /lib64/libc.so.6(__libc_start_main+0xfd)[0x3b8a41ecdd] python[0x400649] the class CMOOSApp is defined here: https://oceanai.mit.edu/svn/moos-ivp-aro/releases/moos-ivp-13.5/MOOS_V10Beta_rc2/MOOSCore/Core/libMOOS/App/include/MOOS/libMOOS/App/MOOSApp.h my complete code can be found here on the off chance someone wants to tinker with it: https://bitbucket.org/ariovistus/moos-python
_______________________________________________ Cplusplus-sig mailing list Cplusplus-sig@python.org http://mail.python.org/mailman/listinfo/cplusplus-sig