[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
libs/python/test.

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