[Stackless] Stackless and PyQt4 on Linux
Santiago Gala
santiago.gala at gmail.com
Sat Mar 31 11:56:19 CEST 2007
El vie, 30-03-2007 a las 17:43 -0400, Miguel Turner escribió:
> After stepping through the code it looks like the error occurs in
> initQtCore:
>
Looks to me like C++ ABI hell. :)
C++ has no binary compatibility guarantee between versions, so every C++
component should ideally be compiled with the same compiler. I've seen
nasty problems like this related to gcc upgrades with C++ binary
components (IBM-jdk has the AWT written in C++, for instance). It was
blowing the stack in much the same way (C++ exceptions are particularly
sensitive to ABI changes)
I'd make sure that every C++ component (QT is C++, python *might* have
some C++ wrapper, ...)
I don't know the details, as I try to keep myself as far from C++ as
possible, both for this reason and because having a supposedly high
level language being a strict superset of a low level one (C) looks
crazy enough for me. :)
Regards
Santiago
> (gdb)
> initQtCore () at sipQtCorecmodule.cpp:9048
> 9048 if (sip_sipmod == NULL)
> Current language: auto; currently c++
> (gdb)
>
> 9051 sip_capiobj = PyDict_GetItemString(PyModule
> _GetDict(sip_sipmod),"_C_API");
> (gdb)
>
> 9053 if (sip_capiobj == NULL || !PyCObject_Check(sip_capiobj))
> (gdb)
> 9056 sipAPI_QtCore = reinterpret_cast<const sipAPIDef
> *>(PyCObject_AsVoidPtr(sip_capiobj));
> (gdb)
> 9059 if
> (sipAPI_QtCore->api_export_module(&sipModuleAPI_QtCore,SIP_API_MAJOR_NR,SIP_API_MINOR_NR,sipModuleDict) < 0)
> (gdb)
>
> Program received signal SIGSEGV, Segmentation fault.
> 0xb7ecdc53 in strlen () from /lib/tls/i686/cmov/libc.so.6
> (gdb)
> _______________________________________________
> Stackless mailing list
> Stackless at stackless.com
> http://www.stackless.com/mailman/listinfo/stackless
_______________________________________________
Stackless mailing list
Stackless at stackless.com
http://www.stackless.com/mailman/listinfo/stackless
More information about the Stackless
mailing list