我在Linux上有一个Qt应用程序崩溃了。 靠背显示几乎所有Qt库。 这是Qt的错误吗? 如何处理?
Program received signal SIGABRT, Aborted.
0x00007ffff5471d05 in raise (sig=6)
at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
64 ../nptl/sysdeps/unix/sysv/linux/raise.c: No such file or directory.
in ../nptl/sysdeps/unix/sysv/linux/raise.c
(gdb) bt
#0 0x00007ffff5471d05 in raise (sig=6)
at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#1 0x00007ffff5475ab6 in abort () at abort.c:92
#2 0x00007ffff54aad7b in __libc_message (do_abort=2,
fmt=0x7ffff5593400 "*** glibc detected *** %s: %s: 0x%s ***\n")
at ../sysdeps/unix/sysv/linux/libc_fatal.c:189
#3 0x00007ffff54b5fb1 in malloc_printerr (av=0x7ffff57cd1c0) at malloc.c:6283
#4 malloc_consolidate (av=0x7ffff57cd1c0) at malloc.c:5161
#5 0x00007ffff54b7472 in _int_malloc (av=0x7ffff57cd1c0, bytes=45826560)
at malloc.c:4373
#6 0x00007ffff54ba31e in __libc_malloc (bytes=45826560) at malloc.c:3660
#7 0x00007ffff62657b6 in QString::realloc(int) () from ./libQtCore.so.4
#8 0x00007ffff6ceeae7 in ?? () from ./libQtGui.so.4
#9 0x00007ffff6cefb88 in QPainter::drawText(QRect const&, int, QString const&, QRect*) () from ./libQtGui.so.4
#10 0x00007ffff6f41f23 in QCleanlooksStyle::drawItemText(QPainter*, QRect const&, int, QPalette const&, bool, QString const&, QPalette::ColorRole) const ()
from ./libQtGui.so.4
#11 0x00007ffff6fc3ae3 in QLabel::paintEvent(QPaintEvent*) ()
from ./libQtGui.so.4
#12 0x00007ffff6be6e9c in QWidget::event(QEvent*) () from ./libQtGui.so.4
---Type <return> to continue, or q <return> to quit---
#13 0x00007ffff6fbe17b in QFrame::event(QEvent*) () from ./libQtGui.so.4
#14 0x00007ffff6fc1cbb in QLabel::event(QEvent*) () from ./libQtGui.so.4
#15 0x00007ffff6b8b84f in QApplicationPrivate::notify_helper(QObject*, QEvent*)
() from ./libQtGui.so.4
#16 0x00007ffff6b92e22 in QApplication::notify(QObject*, QEvent*) ()
from ./libQtGui.so.4
#17 0x00007ffff6311b54 in QCoreApplication::notifyInternal(QObject*, QEvent*)
() from ./libQtCore.so.4
#18 0x00007ffff6be4085 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) ()
from ./libQtGui.so.4
#19 0x00007ffff6be4a02 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from ./libQtGui.so.4
#20 0x00007ffff6be48c4 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from ./libQtGui.so.4
#21 0x00007ffff6be48c4 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from ./libQtGui.so.4
#22 0x00007ffff6be48c4 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, ---Type <return> to continue, or q <return> to quit---
QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from ./libQtGui.so.4
#23 0x00007ffff6be48c4 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from ./libQtGui.so.4
#24 0x00007ffff6be48c4 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from ./libQtGui.so.4
#25 0x00007ffff6be3c7a in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) ()
from ./libQtGui.so.4
#26 0x00007ffff6db6665 in ?? () from ./libQtGui.so.4
#27 0x00007ffff6bdaef6 in QWidgetPrivate::syncBackingStore() ()
from ./libQtGui.so.4
#28 0x00007ffff6be6fc6 in QWidget::event(QEvent*) () from ./libQtGui.so.4
#29 0x00007ffff6b8b84f in QApplicationPrivate::notify_helper(QObject*, QEvent*)
() from ./libQtGui.so.4
#30 0x00007ffff6b92e22 in QApplication::notify(QObject*, QEvent*) ()
from ./libQtGui.so.4
#31 0x00007ffff6311b54 in QCoreApplication::notifyInternal(QObject*, QEvent*)
() from ./libQtCore.so.4
---Type <return> to continue, or q <return> to quit---
#32 0x00007ffff6312bb4 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from ./libQtCore.so.4
#33 0x00007ffff633e8c3 in ?? () from ./libQtCore.so.4
#34 0x00007ffff4d88bcd in g_main_context_dispatch ()
from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#35 0x00007ffff4d893a8 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#36 0x00007ffff4d89639 in g_main_context_iteration ()
from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#37 0x00007ffff633eb35 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from ./libQtCore.so.4
#38 0x00007ffff6c3be3f in ?? () from ./libQtGui.so.4
#39 0x00007ffff6310ef5 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from ./libQtCore.so.4
#40 0x00007ffff631115d in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from ./libQtCore.so.4
#41 0x00007ffff6312f04 in QCoreApplication::exec() () from ./libQtCore.so.4
#42 0x000000000041b74a in main (argc=2, argv=0x7fffffffe1f8) at CCC.cpp:549
(gdb)
答案 0 :(得分:1)
阅读stacktrace:
__libc_malloc (bytes=45826560)
QPainter::drawText(...)
QLabel::paintEvent(QPaintEvent*) ()
看起来你将一个无效字符串传递给Qt以在QLabel中呈现。