Is it a bug of Qt libraries or of my own app?
I've written an app using Qt library(both 4.7 and 4.7.1 have this problem), and this app mainly deals with webkit(display web pages) and Qt-webkit bridging(maps C++ class to Javascript object). But got the following segfault:
Program received signal SIGSEGV, Segmentation fault.
0x00007ffff5585db7 in QHttpNetworkConnectionChannel::allDone (this=0x86bb20)
at /var/tmp/qt-src/src/network/access/qhttpnetworkconnectionchannel.cpp:620
warning: Source file is more recent than executable.
620 if (reply->d_func()->expectContent() && reply->d_func()->autoDecompress && !reply->d_func()->streamEnd)
(gdb) bt
#0 0x00007ffff5585db7 in QHttpNetworkConnectionChannel::allDone (
this=0x86bb20)
at /var/tmp/qt-src/src/network/access/qhttpnetworkconnectionchannel.cpp:620
#1 0x00007ffff5586992 in QHttpNetworkConnectionChannel::_q_receiveReply (
this=0x86bb20)
at /var/tmp/qt-src/src/network/access/qhttpnetworkconnectionchannel.cpp:397
#2 0x00007ffff558829a in QHttpNetworkConnectionChannel::qt_metacall (
this=0x86bb20, _c=QMetaObject::InvokeMetaMethod,
_id=<value optimized out>, _a=0x7fffffffd8c0)
at .moc/release-shared/moc_qhttpnetworkconnectionchannel_p.cpp:92
#3 0x00007ffff51ec0f8 in QMetaObject开发者_开发问答::activate (sender=0x8655f0,
m=<value optimized out>, local_signal_index=<value optimized out>,
argv=0x8a9e20) at /var/tmp/qt-src/src/corelib/kernel/qobject.cpp:3272
#4 0x00007ffff55ed678 in QAbstractSocketPrivate::canReadNotification (
this=0x865610)
at /var/tmp/qt-src/src/network/socket/qabstractsocket.cpp:639
#5 0x00007ffff55dc791 in QReadNotifier::event (this=<value optimized out>,
e=0x1) at /var/tmp/qt-src/src/network/socket/qnativesocketengine.cpp:1103
#6 0x00007ffff5a67d5f in QApplicationPrivate::notify_helper (this=0x61b840,
receiver=0x965270, e=0x7fffffffdee0)
at /var/tmp/qt-src/src/gui/kernel/qapplication.cpp:4396
#7 0x00007ffff5a6e94b in QApplication::notify (this=0x7fffffffe1f0,
receiver=0x965270, e=0x7fffffffdee0)
---Type <return> to continue, or q <return> to quit---
at /var/tmp/qt-src/src/gui/kernel/qapplication.cpp:4277
#8 0x00007ffff51d60a4 in QCoreApplication::notifyInternal (
this=0x7fffffffe1f0, receiver=0x965270, event=0x7fffffffdee0)
at /var/tmp/qt-src/src/corelib/kernel/qcoreapplication.cpp:732
#9 0x00007ffff5203a3a in QCoreApplication::sendEvent (source=0x624b20)
at /var/tmp/qt-src/src/corelib/kernel/qcoreapplication.h:215
#10 socketNotifierSourceDispatch (source=0x624b20)
at /var/tmp/qt-src/src/corelib/kernel/qeventdispatcher_glib.cpp:110
#11 0x00007ffff26f08c2 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#12 0x00007ffff26f4748 in ?? () from /lib/libglib-2.0.so.0
#13 0x00007ffff26f48fc in g_main_context_iteration ()
from /lib/libglib-2.0.so.0
#14 0x00007ffff5203bcc in QEventDispatcherGlib::processEvents (this=0x6210d0,
flags=<value optimized out>)
at /var/tmp/qt-src/src/corelib/kernel/qeventdispatcher_glib.cpp:415
#15 0x00007ffff5b18bcf in QGuiEventDispatcherGlib::processEvents (
this=0x86bb20, flags=<value optimized out>)
at /var/tmp/qt-src/src/gui/kernel/qguieventdispatcher_glib.cpp:204
#16 0x00007ffff51d53f5 in QEventLoop::processEvents (
this=<value optimized out>, flags=...)
at /var/tmp/qt-src/src/corelib/kernel/qeventloop.cpp:149
#17 0x00007ffff51d5646 in QEventLoop::exec (this=0x7fffffffe150, flags=...)
at /var/tmp/qt-src/src/corelib/kernel/qeventloop.cpp:201
---Type <return> to continue, or q <return> to quit---
#18 0x00007ffff51d7484 in QCoreApplication::exec ()
at /var/tmp/qt-src/src/corelib/kernel/qcoreapplication.cpp:1009
#19 0x00000000004064b4 in main (argc=1, argv=0x7fffffffe2f8)
at ../myPlatform/main.cpp:10
The warning: "Source file is more recent than executable." is strange. Did you compile the Qt sources? Or do you use the sources and headers from a recent version and the libraries from an older version?
精彩评论