[PyKDE] quitting eric segfault on x86_64

Phil Thompson phil at riverbankcomputing.co.uk
Tue Mar 16 19:05:01 GMT 2004


On Tuesday 16 March 2004 18:00, Phil Thompson wrote:
> On Tuesday 16 March 2004 10:13, Hans-Peter Jansen wrote:
> > Hi,
> >
> > building sip-3.10.1 and PyQt-3.11 on top of x86_64 (SuSE 9.1 Beta1,
> > Python 2.3, Qt-3.3.1) was painlessly easy.
> >
> > Unfortunately just starting and quitting eric-3.3.1 reveals this
> > segfault:
> >
> > Program received signal SIGSEGV, Segmentation fault.
> > 0x0000002a960594f2 in memcpy () from /lib64/tls/libc.so.6
> > (gdb) bt
> > #0  0x0000002a960594f2 in memcpy () from /lib64/tls/libc.so.6
> > #1  0x0000000000fabd80 in ?? ()
> > #2  0x0000002a969d5336 in QSocket::writeBlock () from
> > /usr/lib64/libqt-mt.so.3 #3  0x0000002a9a0d4dc7 in
> > sipCast_QDns_MailServer ()
> >    from /usr/lib64/python2.3/site-packages/libqtnetworkcmodule.so
> > #4  0x0000002a956c2b7c in PyCFunction_Call () from
> > /usr/lib64/libpython2.3.so.1.0 #5  0x0000002a956f2c84 in eval_frame ()
> > from /usr/lib64/libpython2.3.so.1.0 #6  0x0000002a956f4223 in eval_frame
> > () from /usr/lib64/libpython2.3.so.1.0 #7  0x0000002a956f4223 in
> > eval_frame () from /usr/lib64/libpython2.3.so.1.0 #8  0x0000002a956f4223
> > in eval_frame () from /usr/lib64/libpython2.3.so.1.0 #9 
> > 0x0000002a956f4223 in eval_frame () from /usr/lib64/libpython2.3.so.1.0
> > #10 0x0000002a956f4945 in PyEval_EvalCodeEx () from
> > /usr/lib64/libpython2.3.so.1.0 #11 0x0000002a956b49f5 in function_call ()
> > from /usr/lib64/libpython2.3.so.1.0 #12 0x0000002a956a06c0 in
> > PyObject_Call () from /usr/lib64/libpython2.3.so.1.0 #13
> > 0x0000002a956a89fd in instancemethod_call () from
> > /usr/lib64/libpython2.3.so.1.0 #16 0x0000002a963a57d0 in sipEvalMethod ()
> > from /usr/lib64/python2.3/site-packages/libsip.so #17 0x0000002a963a94f7
> > in sipCallMethod () from /usr/lib64/python2.3/site-packages/libsip.so #18
> > 0x0000002a982ad633 in sipQWidget::sipVH_closeEvent ()
> >    from /usr/lib64/python2.3/site-packages/libqtcmodule.so
> > #19 0x0000002a984082fe in sipQMainWindow::closeEvent ()
> >    from /usr/lib64/python2.3/site-packages/libqtcmodule.so
> > #20 0x0000002a96847e1d in QWidget::event () from /usr/lib64/libqt-mt.so.3
> > #21 0x0000002a968f4da5 in QMainWindow::event () from
> > /usr/lib64/libqt-mt.so.3 #22 0x0000002a9849dabf in sipQMainWindow::event
> > () from /usr/lib64/python2.3/site-packages/libqtcmodule.so
> > #23 0x0000002a967c2a0d in QApplication::internalNotify () from
> > /usr/lib64/libqt-mt.so.3 #24 0x0000002a967c41ae in QApplication::notify
> > () from /usr/lib64/libqt-mt.so.3 #25 0x0000002a982ced03 in
> > sipQApplication::notify ()
> >    from /usr/lib64/python2.3/site-packages/libqtcmodule.so
> > #26 0x0000002a9684a0b4 in QWidget::close () from /usr/lib64/libqt-mt.so.3
> > #27 0x0000002a98322e41 in sipQMainWindow::close ()
> >    from /usr/lib64/python2.3/site-packages/libqtcmodule.so
> > #28 0x0000002a9675ccaf in QETWidget::translateCloseEvent () from
> > /usr/lib64/libqt-mt.so.3 #29 0x0000002a96762605 in
> > QApplication::x11ClientMessage () from /usr/lib64/libqt-mt.so.3 ---Type
> > <return> to continue, or q <return> to quit---
> > #30 0x0000002a967681ce in QApplication::x11ProcessEvent () from
> > /usr/lib64/libqt-mt.so.3 #31 0x0000002a9677a3e3 in
> > QEventLoop::processEvents () from /usr/lib64/libqt-mt.so.3 #32
> > 0x0000002a967d7df1 in QEventLoop::enterLoop () from
> > /usr/lib64/libqt-mt.so.3 #33 0x0000002a967d7c62 in QEventLoop::exec ()
> > from /usr/lib64/libqt-mt.so.3 #34 0x0000002a967c40c5 in
> > QApplication::exec () from /usr/lib64/libqt-mt.so.3 #35
> > 0x0000002a9823aef6 in PyQt_qt_ListToArray ()
> >    from /usr/lib64/python2.3/site-packages/libqtcmodule.so
> > #36 0x0000002a956c2b7c in PyCFunction_Call () from
> > /usr/lib64/libpython2.3.so.1.0 #37 0x0000002a956f2c84 in eval_frame ()
> > from /usr/lib64/libpython2.3.so.1.0 #38 0x0000002a956f4945 in
> > PyEval_EvalCodeEx () from /usr/lib64/libpython2.3.so.1.0 #39
> > 0x0000002a956f4c02 in PyEval_EvalCode () from
> > /usr/lib64/libpython2.3.so.1.0 #40
> > 0x0000002a9570c849 in run_node () from /usr/lib64/libpython2.3.so.1.0 #41
> > 0x0000002a9570dd29 in PyRun_SimpleFileExFlags () from
> > /usr/lib64/libpython2.3.so.1.0 #42 0x0000002a9570e281 in
> > PyRun_AnyFileExFlags () from /usr/lib64/libpython2.3.so.1.0 #43
> > 0x0000002a957130f6 in Py_Main () from /usr/lib64/libpython2.3.so.1.0 #44
> > 0x00000000004008c9 in main ()
> >
> > Looks like it crashes deep in the guts of PyQt. Will try to locate
> > the offending code now.
> >
> > Phil, do you have any idea, what's going wrong here?
> > References to QDns_MailServer looks really strange at that point.
>
> PyQt assumes Q_LONG is a long (rather than a long long). You could try
> changing the typedefs in qglobal.sip and re-building.

Ignore the last sentence - forgot to engage brain before typing. SIP doesn't 
support long longs so changing the typedef won't help very much. (You would 
have to hack the generated code.)

How does Qt define Q_LONG etc on x86_64?

Phil




More information about the PyQt mailing list