首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法跟踪Qt程序中崩溃的原因。

无法跟踪Qt程序中崩溃的原因。
EN

Stack Overflow用户
提问于 2016-11-08 15:13:54
回答 1查看 960关注 0票数 0

我们正在开发Qt中的原始数据视频播放器(https://github.com/IENT/YUView/)。我们最近遇到了一个问题,我们的球员崩溃了。我们无法在调试器中跟踪原因,它似乎发生在Qt内部的某个地方,请参见下面的跟踪。

基本上,我们有一个如何寻找问题的问题。知道该怎么处理吗?

这个问题只发生在Linux机器上(已经测试了不同的Qt版本),而不是在Windows上。它与某些文件之间的打开和切换有关,但它只是偶尔发生,我们不能故意触发它,而必须在文件之间切换多次,直到它发生为止。可以是马上,也可以是在几分钟后。

下面是问题的线索:

代码语言:javascript
复制
0   QFontEngineFT::loadGlyphSet /usr/lib/debug/.build-id/c9/2e9e9dc3a4cf1f0133535e22d8ad76aa855d38.debug    1338    0x7fffeeed597a  
1   QFontEngineFT::loadGlyphFor /usr/lib/debug/.build-id/c9/2e9e9dc3a4cf1f0133535e22d8ad76aa855d38.debug    1795    0x7fffeeed59f8  
2   QFontEngineFT::lockedAlphaMapForGlyph   /usr/lib/debug/.build-id/c9/2e9e9dc3a4cf1f0133535e22d8ad76aa855d38.debug    1763    0x7fffeeed6ac4  
3   QRasterPaintEngine::drawCachedGlyphs    /usr/lib/debug/.build-id/81/2089dc48198b2723d82741c41011f463a732c0.debug    2760    0x7ffff75280f1  
4   QRasterPaintEngine::drawTextItem    /usr/lib/debug/.build-id/81/2089dc48198b2723d82741c41011f463a732c0.debug    3036    0x7ffff752ac5f  
5   QPainterPrivate::drawTextItem   /usr/lib/debug/.build-id/81/2089dc48198b2723d82741c41011f463a732c0.debug    6500    0x7ffff75482d1  
6   QTextLine::draw /usr/lib/debug/.build-id/81/2089dc48198b2723d82741c41011f463a732c0.debug    2532    0x7ffff73d5c5d  
7   QTextLayout::draw   /usr/lib/debug/.build-id/81/2089dc48198b2723d82741c41011f463a732c0.debug    1192    0x7ffff73d6a0d  
8   QWidgetLineControl::draw    /usr/lib/debug/.build-id/d5/2143d1747e6970d9ecdc0538c5c9170af15963.debug    629 0x7ffff7a8240b  
9   QLineEdit::paintEvent   /usr/lib/debug/.build-id/d5/2143d1747e6970d9ecdc0538c5c9170af15963.debug    1986    0x7ffff79f6038  
10  QWidget::event  /usr/lib/debug/.build-id/d5/2143d1747e6970d9ecdc0538c5c9170af15963.debug    9044    0x7ffff78e7f88  
11  QLineEdit::event    /usr/lib/debug/.build-id/d5/2143d1747e6970d9ecdc0538c5c9170af15963.debug    1456    0x7ffff79fb349  
12  QApplicationPrivate::notify_helper  /usr/lib/debug/.build-id/d5/2143d1747e6970d9ecdc0538c5c9170af15963.debug    3716    0x7ffff78a505c  
13  QApplication::notify    /usr/lib/debug/.build-id/d5/2143d1747e6970d9ecdc0538c5c9170af15963.debug    3499    0x7ffff78aa516  
14  QCoreApplication::notifyInternal    /usr/lib/debug/.build-id/53/070dadaef9fa7fb45640b17d77ee3aeeac7b13.debug    965 0x7ffff6fb238b  
15  QCoreApplication::sendSpontaneousEvent  /usr/lib/debug/.build-id/d5/2143d1747e6970d9ecdc0538c5c9170af15963.debug    227 0x7ffff78e0a79  
16  QWidgetPrivate::sendPaintEvent  /usr/lib/debug/.build-id/d5/2143d1747e6970d9ecdc0538c5c9170af15963.debug    5625    0x7ffff78e0a79  
17  QWidgetPrivate::drawWidget  /usr/lib/debug/.build-id/d5/2143d1747e6970d9ecdc0538c5c9170af15963.debug    5565    0x7ffff78e10c1  
18  QWidgetPrivate::paintSiblingsRecursive  /usr/lib/debug/.build-id/d5/2143d1747e6970d9ecdc0538c5c9170af15963.debug    5760    0x7ffff78e1d6c  
19  QWidgetPrivate::drawWidget  /usr/lib/debug/.build-id/d5/2143d1747e6970d9ecdc0538c5c9170af15963.debug    5617    0x7ffff78e0c31  
20  QWidgetPrivate::paintSiblingsRecursive  /usr/lib/debug/.build-id/d5/2143d1747e6970d9ecdc0538c5c9170af15963.debug    5760    0x7ffff78e1d6c  
21  QWidgetPrivate::paintSiblingsRecursive  /usr/lib/debug/.build-id/d5/2143d1747e6970d9ecdc0538c5c9170af15963.debug    5747    0x7ffff78e1c59  
22  QWidgetPrivate::paintSiblingsRecursive  /usr/lib/debug/.build-id/d5/2143d1747e6970d9ecdc0538c5c9170af15963.debug    5747    0x7ffff78e1c59  
23  QWidgetPrivate::paintSiblingsRecursive  /usr/lib/debug/.build-id/d5/2143d1747e6970d9ecdc0538c5c9170af15963.debug    5747    0x7ffff78e1c59  
24  QWidgetPrivate::paintSiblingsRecursive  /usr/lib/debug/.build-id/d5/2143d1747e6970d9ecdc0538c5c9170af15963.debug    5747    0x7ffff78e1c59  
25  QWidgetPrivate::paintSiblingsRecursive  /usr/lib/debug/.build-id/d5/2143d1747e6970d9ecdc0538c5c9170af15963.debug    5747    0x7ffff78e1c59  
26  QWidgetPrivate::drawWidget  /usr/lib/debug/.build-id/d5/2143d1747e6970d9ecdc0538c5c9170af15963.debug    5617    0x7ffff78e0c31  
27  QWidgetPrivate::paintSiblingsRecursive  /usr/lib/debug/.build-id/d5/2143d1747e6970d9ecdc0538c5c9170af15963.debug    5760    0x7ffff78e1d6c  
28  QWidgetPrivate::drawWidget  /usr/lib/debug/.build-id/d5/2143d1747e6970d9ecdc0538c5c9170af15963.debug    5617    0x7ffff78e0c31  
29  QWidgetPrivate::paintSiblingsRecursive  /usr/lib/debug/.build-id/d5/2143d1747e6970d9ecdc0538c5c9170af15963.debug    5760    0x7ffff78e1d6c  
30  QWidgetPrivate::drawWidget  /usr/lib/debug/.build-id/d5/2143d1747e6970d9ecdc0538c5c9170af15963.debug    5617    0x7ffff78e0c31  
31  QWidgetPrivate::paintSiblingsRecursive  /usr/lib/debug/.build-id/d5/2143d1747e6970d9ecdc0538c5c9170af15963.debug    5760    0x7ffff78e1d6c  
32  QWidgetPrivate::drawWidget  /usr/lib/debug/.build-id/d5/2143d1747e6970d9ecdc0538c5c9170af15963.debug    5617    0x7ffff78e0c31  
33  QWidgetPrivate::paintSiblingsRecursive  /usr/lib/debug/.build-id/d5/2143d1747e6970d9ecdc0538c5c9170af15963.debug    5760    0x7ffff78e1d6c  
34  QWidgetPrivate::paintSiblingsRecursive  /usr/lib/debug/.build-id/d5/2143d1747e6970d9ecdc0538c5c9170af15963.debug    5747    0x7ffff78e1c59  
35  QWidgetPrivate::paintSiblingsRecursive  /usr/lib/debug/.build-id/d5/2143d1747e6970d9ecdc0538c5c9170af15963.debug    5747    0x7ffff78e1c59  
36  QWidgetPrivate::drawWidget  /usr/lib/debug/.build-id/d5/2143d1747e6970d9ecdc0538c5c9170af15963.debug    5617    0x7ffff78e0c31  
37  QWidgetBackingStore::doSync /usr/lib/debug/.build-id/d5/2143d1747e6970d9ecdc0538c5c9170af15963.debug    1226    0x7ffff78b28aa  
38  QWidgetBackingStore::sync   /usr/lib/debug/.build-id/d5/2143d1747e6970d9ecdc0538c5c9170af15963.debug    1032    0x7ffff78b2a8c  
39  QWidgetPrivate::syncBackingStore    /usr/lib/debug/.build-id/d5/2143d1747e6970d9ecdc0538c5c9170af15963.debug    1902    0x7ffff78d0c1f  
40  QWidget::event  /usr/lib/debug/.build-id/d5/2143d1747e6970d9ecdc0538c5c9170af15963.debug    8983    0x7ffff78e7d88  
41  QMainWindow::event  /usr/lib/debug/.build-id/d5/2143d1747e6970d9ecdc0538c5c9170af15963.debug    1495    0x7ffff79fdd7b  
42  QApplicationPrivate::notify_helper  /usr/lib/debug/.build-id/d5/2143d1747e6970d9ecdc0538c5c9170af15963.debug    3716    0x7ffff78a505c  
43  QApplication::notify    /usr/lib/debug/.build-id/d5/2143d1747e6970d9ecdc0538c5c9170af15963.debug    3499    0x7ffff78aa516  
44  QCoreApplication::notifyInternal    /usr/lib/debug/.build-id/53/070dadaef9fa7fb45640b17d77ee3aeeac7b13.debug    965 0x7ffff6fb238b  
45  QCoreApplication::sendEvent /usr/lib/debug/.build-id/53/070dadaef9fa7fb45640b17d77ee3aeeac7b13.debug    224 0x7ffff6fb4786  
46  QCoreApplicationPrivate::sendPostedEvents   /usr/lib/debug/.build-id/53/070dadaef9fa7fb45640b17d77ee3aeeac7b13.debug    1593    0x7ffff6fb4786  
47  QCoreApplication::sendPostedEvents  /usr/lib/debug/.build-id/53/070dadaef9fa7fb45640b17d77ee3aeeac7b13.debug    1451    0x7ffff6fb4c68  
48  postEventSourceDispatch /usr/lib/debug/.build-id/53/070dadaef9fa7fb45640b17d77ee3aeeac7b13.debug    271 0x7ffff70083c3  
49  g_main_context_dispatch         0x7ffff57691a7  
50  ??          0x7ffff5769400  
51  g_main_context_iteration            0x7ffff57694ac  
52  QEventDispatcherGlib::processEvents /usr/lib/debug/.build-id/53/070dadaef9fa7fb45640b17d77ee3aeeac7b13.debug    418 0x7ffff70087cf  
53  QEventLoop::exec    /usr/lib/debug/.build-id/53/070dadaef9fa7fb45640b17d77ee3aeeac7b13.debug    204 0x7ffff6fafb4a  
54  QCoreApplication::exec  /usr/lib/debug/.build-id/53/070dadaef9fa7fb45640b17d77ee3aeeac7b13.debug    1229    0x7ffff6fb7bec  
55  main    yuviewapp.cpp   84  0x4b16e9    
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-09 08:25:45

QFontEngineFT::loadGlyphSet(const QTransform &matrix)发生在QT5.5中的第1338行。

代码语言:javascript
复制
1334 if (matrix.type() > QTransform::TxShear || !cacheEnabled)
1335    return 0;
1336
1337 // FT_Set_Transform only supports scalable fonts
1338 if (!FT_IS_SCALABLE(freetype->face))
1339    return matrix.type() <= QTransform::TxTranslate ? &defaultGlyphSet : Q_NULLPTR;

这是Qt中的一个bug,在QT5.7中还没有修复。然而,一个可能的解决办法是强制返回语句发生。这可以通过设置以下环境varibale来完成:

代码语言:javascript
复制
export QT_NO_FT_CACHE=1
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40490414

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档