2016-11-08 5 views
0

私たちはQt(https://github.com/IENT/YUView/)で生データビデオプレーヤーを開発しています。私たちは最近、プレーヤーがクラッシュするという問題に直面しました。私たちはデバッガの原因を追跡することができませんでした。それはQtの内部のどこかで発生するようですが、以下のトレースを参照してください。Qtプログラムのクラッシュの原因をトレースできません

基本的には、問題を探す方法の問題があります。どのようにそれにアプローチする上の任意のアイデア?

この問題は、WindowsではなくLinuxマシン(すでにテスト済みの異なるQtバージョン)でのみ発生します。それはいくつかのファイルを開いたり切り換えたりすることに関連していますが、ときどき発生するだけで意図的にトリガーすることはできず、ファイルが何回も切り替わるまで何度も切り替えなければなりません。それは即座にも、分後でもかまいません。

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  
+0

50行目はどうなりますか?周囲の行はあなたのコードであるか、それらのOS関数ですか?あなたが静的にリンクしているように見えるので、それを伝えるのは難しいですか? – rubenvb

+0

ちょっとした注意:商用製品を開発して商用Qtライセンスを持っていないときは、静的にQtにリンクすることはできません。動的にリンクする必要があります。 – Hayt

+0

関連するhttps://bugreports.qt.io/browse/QTBUG-50744 –

答えて

1

セグメンテーション違反がQtの5.5にライン1338でQFontEngineFT :: loadGlyphSet(constのQTransform &マトリックス)に行われます。ここ

は、問題の痕跡です。

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; 

IMHOこれはQtのバグであり、まだQt 5.7では修正されていません。ただし、回避策の1つとして、return文を強制的に実行することが考えられます。これは、以下の環境変数を設定することで可能です:

export QT_NO_FT_CACHE=1 
関連する問題