[C++-sig] 'unidentifiable C++ exception' / arg_from_python.hpp

David Abrahams dave at boost-consulting.com
Wed Dec 11 19:12:07 CET 2002

"Achim Domma" <achim.domma at syynx.de> writes:

> Hi,
> using code that worked fine 2-3 days before, I get an 'unidentifiable C++
> exception'. If I attach a debugger and let him stop at the first exception,
> it stops in arg_from_python.hpp in line 319:
> template <class T>
> inline typename arg_rvalue_from_python<T>::result_type
> arg_rvalue_from_python<T>::operator()(PyObject* p)
> {
>     if (m_data.stage1.construct != 0)
>         m_data.stage1.construct(p, &m_data.stage1); <--- Break
>     return python::detail::void_ptr_to_reference(m_data.stage1.convertible,
> (result_type(*)())0);
> }
> The call stack is attached below. Could somebody give me a hint, what's
> going on? Does this happen in my code, in boost.python or in the
> CORE_RL_magick_.dll? 

It's happening in Boost.Python template code which is instantiated in
your extension module.

> It must be something stupid, but I have no idea in
> which direction to search.

It's probably a crash. I have no idea why. I suggest setting your
debugger to stop on Win32 exceptions. Adding

   #include "module_tail.cpp"

to the end of your extension module. You can find the .cpp file in

This will cause (JIT) debugging to be invoked at the point of the
crash, instead of translating it into a C++ exception.  It might be
useful to inspect *this at the point of the crash (if the crash does
in fact happen at the same place you're seeing the exception above).

Sorry I can't be more helpful.
                       David Abrahams
   dave at boost-consulting.com * http://www.boost-consulting.com
Boost support, enhancements, training, and commercial distribution

More information about the Cplusplus-sig mailing list