[Interest] iOS application crash with EXC_ARM_DA_ALIGN

Igor Mironchik igor.mironchik at gmail.com
Mon Sep 7 16:28:18 CEST 2015


Hi.

I've created very simple QWidget-based application for test. This is 
simple QWidget with QLabel on it. Nothing more.

This application works fine in simulator but crashes when starts on real 
iPad device.

Here is stack trace...

#00x018433bc in 
EAGLContext_renderbufferStorageFromDrawable(EAGLContext*, 
objc_selector*, unsigned int, id<EAGLDrawable>) ()
#10x000ca20e in 
QIOSContext::backingFramebufferObjectFor(QPlatformSurface*) const at 
/work/build/qt5_workdir/w/s/qtbase/src/plugins/platforms/ios/qioscontext.mm:208
#20x000c9cb6 in 
QIOSContext::backingFramebufferObjectFor(QPlatformSurface*) const at 
/work/build/qt5_workdir/w/s/qtbase/src/plugins/platforms/ios/qioscontext.mm:165
#30x000c9c00 in QIOSContext::makeCurrent(QPlatformSurface*) at 
/work/build/qt5_workdir/w/s/qtbase/src/plugins/platforms/ios/qioscontext.mm:128
#40x000ca450 in non-virtual thunk to 
QIOSContext::makeCurrent(QPlatformSurface*) at 
/work/build/qt5_workdir/w/s/qtbase/src/plugins/platforms/ios/qioscontext.mm:136
#50x004c17d8 in QOpenGLContext::makeCurrent(QSurface*) at 
/work/build/qt5_workdir/w/s/qtbase/src/gui/kernel/qopenglcontext.cpp:936
#60x000c58ae in QIOSBackingStore::makeCurrent() at 
/work/build/qt5_workdir/w/s/qtbase/src/plugins/platforms/ios/qiosbackingstore.mm:97
#70x000c601c in QIOSBackingStore::beginPaint(QRegion const&) at 
/work/build/qt5_workdir/w/s/qtbase/src/plugins/platforms/ios/qiosbackingstore.mm:133
#80x005bfed8 in QBackingStore::beginPaint(QRegion const&) at 
/work/build/qt5_workdir/w/s/qtbase/src/gui/painting/qbackingstore.cpp:153
#90x00112a28 in QWidgetBackingStore::beginPaint(QRegion&, QWidget*, 
QBackingStore*, BeginPaintInfo*, bool) at 
/work/build/qt5_workdir/w/s/qtbase/src/widgets/kernel/qwidgetbackingstore.cpp:315
#100x001152b2 in QWidgetBackingStore::doSync() at 
/work/build/qt5_workdir/w/s/qtbase/src/widgets/kernel/qwidgetbackingstore.cpp:1186
#110x00114a7e in QWidgetBackingStore::sync(QWidget*, QRegion const&) at 
/work/build/qt5_workdir/w/s/qtbase/src/widgets/kernel/qwidgetbackingstore.cpp:954
#120x00130934 in QWidgetPrivate::syncBackingStore(QRegion const&) at 
/work/build/qt5_workdir/w/s/qtbase/src/widgets/kernel/qwidget.cpp:1901
#130x0015b6d6 in QWidgetWindow::handleExposeEvent(QExposeEvent*) at 
/work/build/qt5_workdir/w/s/qtbase/src/widgets/kernel/qwidgetwindow.cpp:822
#140x00159da8 in QWidgetWindow::event(QEvent*) at 
/work/build/qt5_workdir/w/s/qtbase/src/widgets/kernel/qwidgetwindow.cpp:255
#150x001090de in QApplicationPrivate::notify_helper(QObject*, QEvent*) 
at 
/work/build/qt5_workdir/w/s/qtbase/src/widgets/kernel/qapplication.cpp:3717
#160x0010a6b8 in QApplication::notify(QObject*, QEvent*) at 
/work/build/qt5_workdir/w/s/qtbase/src/widgets/kernel/qapplication.cpp:3161
#170x0084a854 in QCoreApplication::notifyInternal(QObject*, QEvent*) at 
/work/build/qt5_workdir/w/s/qtbase/src/corelib/kernel/qcoreapplication.cpp:965
#180x00142e46 in QCoreApplication::sendSpontaneousEvent(QObject*, 
QEvent*) at 
/work/build/qt5_workdir/w/s/qtbase/src/widgets/../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:227
#190x0048942c in 
QGuiApplicationPrivate::processExposeEvent(QWindowSystemInterfacePrivate::ExposeEvent*) 
at 
/work/build/qt5_workdir/w/s/qtbase/src/gui/kernel/qguiapplication.cpp:2643
#200x004867a8 in 
QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) 
at 
/work/build/qt5_workdir/w/s/qtbase/src/gui/kernel/qguiapplication.cpp:1644
#210x0047afd6 in 
QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) 
at 
/work/build/qt5_workdir/w/s/qtbase/src/gui/kernel/qwindowsysteminterface.cpp:608
#220x0047a7d6 in 
QWindowSystemInterface::flushWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) 
at 
/work/build/qt5_workdir/w/s/qtbase/src/gui/kernel/qwindowsysteminterface.cpp:592
#230x000d4084 in -[QUIView sendUpdatedExposeEvent] at 
/work/build/qt5_workdir/w/s/qtbase/src/plugins/platforms/ios/quiview.mm:190
#240x000d3de8 in -[QUIView displayLayer:] at 
/work/build/qt5_workdir/w/s/qtbase/src/plugins/platforms/ios/quiview.mm:173
#250x28503686 in CA::Layer::display() ()
#260x284e7798 in CA::Layer::display_if_needed(CA::Transaction*) ()
#270x284e745c in 
CA::Layer::layout_and_display_if_needed(CA::Transaction*) ()
#280x284e6df0 in CA::Context::commit_transaction(CA::Transaction*) ()
#290x284e6bde in CA::Transaction::commit() ()
#300x28d318a4 in -[UIApplication _reportMainSceneUpdateFinished:] ()
#310x28d3263c in -[UIApplication 
_runWithMainScene:transitionContext:completion:] ()
#320x28d3ce68 in __84-[UIApplication 
_handleApplicationActivationWithScene:transitionContext:completion:]_block_invoke 
()
#330x28d3098a in -[UIApplication workspaceDidEndTransaction:] ()
#340x2bf30ec8 in __31-[FBSSerialQueue performAsync:]_block_invoke_2 ()
#350x2543efd4 in __CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ ()
#360x2543e298 in __CFRunLoopDoBlocks ()
#370x2543cdd2 in __CFRunLoopRun ()
#380x25389200 in CFRunLoopRunSpecific ()
#390x25389012 in CFRunLoopRunInMode ()
#400x28b32e66 in -[UIApplication _run] ()
#410x28b2da58 in UIApplicationMain ()
#420x000c0b96 in main at 
/work/build/qt5_workdir/w/s/qtbase/src/plugins/platforms/ios/qioseventdispatcher.mm:224

And here point where crash occurs...

libglInterpose.dylib`EAGLContext_renderbufferStorageFromDrawable(EAGLContext*, 
objc_selector*, unsigned int, id<EAGLDrawable>):

0x18432f0 <+0>:    push   {r4, r5, r6, r7, lr}

0x18432f2 <+2>:    add    r7, sp, #0xc

0x18432f4 <+4>:    push.w {r8, r10, r11}

0x18432f8 <+8>:    sub.w  r4, sp, #0x40

0x18432fc <+12>:   bic    r4, r4, #0xf

0x1843300 <+16>:   mov    sp, r4

0x1843302 <+18>:   vst1.64 {d8, d9, d10, d11}, [r4:128]!

0x1843306 <+22>:   vst1.64 {d12, d13, d14, d15}, [r4:128]

0x184330a <+26>:   sub    sp, #0xe0

0x184330c <+28>:   mov    r11, r1

0x184330e <+30>:   str    r0, [sp, #0x44]

0x1843310 <+32>:   movw   r1, #0xd04a

0x1843314 <+36>:   movt   r1, #0x3

0x1843318 <+40>:   mov    r10, r3

0x184331a <+42>:   add    r1, pc

0x184331c <+44>:   mov    r8, r2

0x184331e <+46>:   ldr    r1, [r1]

0x1843320 <+48>:   str    r1, [sp, #0x2c]

0x1843322 <+50>:   ldr    r1, [r1]

0x1843324 <+52>:   str    r1, [sp, #0xdc]

0x1843326 <+54>:   blx 0x187fe5c                 ; symbol stub for: 
GLIContextFromEAGLContext

0x184332a <+58>:   mov    r4, r0

0x184332c <+60>:   movw   r0, #0xd054

0x1843330 <+64>:   movt   r0, #0x3

0x1843334 <+68>:   movw   r1, #0xd020

0x1843338 <+72>:   add    r0, pc

0x184333a <+74>:   movt   r1, #0x3

0x184333e <+78>:   ldr    r0, [r0]

0x1843340 <+80>:   add    r1, pc

0x1843342 <+82>:   ldr    r1, [r1]

0x1843344 <+84>:   ldr    r5, [r0]

0x1843346 <+86>:   ldr.w  r0, [pc, #0x8f0]

0x184334a <+90>:   ldr    r6, [r5, #4]!

0x184334e <+94>:   str    r1, [sp, #0x9c]

0x1843350 <+96>:   add    r0, pc

0x1843352 <+98>:   ldr.w  r1, [pc, #0x8e8]

0x1843356 <+102>:  str    r0, [sp, #0xa0]

0x1843358 <+104>:  add    r0, sp, #0x84

0x184335a <+106>:  str    r7, [sp, #0xa4]

0x184335c <+108>:  orr    r1, r1, #0x1

0x1843360 <+112>:  str.w  sp, [sp, #0xac]

0x1843364 <+116>:  add    r1, pc

0x1843366 <+118>:  str    r1, [sp, #0xa8]

0x1843368 <+120>:  blx 0x187fee0                 ; symbol stub for: 
_Unwind_SjLj_Register

0x184336c <+124>:  cbz    r6, 0x1843396             ; <+166>

0x184336e <+126>:  mov    r0, r5

0x1843370 <+128>:  ldr    r1, [r6, #0x10]

0x1843372 <+130>:  cmp    r1, r4

0x1843374 <+132>:  bhs 0x184337e                 ; <+142>

0x1843376 <+134>:  ldr    r6, [r6, #0x4]

0x1843378 <+136>:  cmp    r6, #0x0

0x184337a <+138>:  bne 0x1843370                 ; <+128>

0x184337c <+140>:  b 0x1843388                 ; <+152>

0x184337e <+142>:  ldr    r1, [r6]

0x1843380 <+144>:  mov    r0, r6

0x1843382 <+146>:  mov    r6, r1

0x1843384 <+148>:  cmp    r1, #0x0

0x1843386 <+150>:  bne 0x1843370                 ; <+128>

0x1843388 <+152>:  cmp    r0, r5

0x184338a <+154>:  beq 0x1843396                 ; <+166>

0x184338c <+156>:  ldr    r1, [r0, #0x10]

0x184338e <+158>:  cmp    r4, r1

0x1843390 <+160>:  it     lo

0x1843392 <+162>:  movlo  r0, r5

0x1843394 <+164>:  b 0x1843398                 ; <+168>

0x1843396 <+166>:  mov    r0, r5

0x1843398 <+168>:  str.w  r11, [sp, #0x34]

0x184339c <+172>:  movw   r1, #0xcfbc

0x18433a0 <+176>:  movt   r1, #0x3

0x18433a4 <+180>:  ldr.w  r11, [r0, #0x14]

0x18433a8 <+184>:  movw   r0, #0x103c

0x18433ac <+188>:  add    r1, pc

0x18433ae <+190>:  ldr    r1, [r1]

0x18433b0 <+192>:  add.w  r5, r11, r0

0x18433b4 <+196>:  str    r1, [sp, #0x4c]

0x18433b6 <+198>:  movs   r1, #0x1

0x18433b8 <+200>:  dmb    ishst

-> 0x18433bc <+204>:  ldrex  r0, [r5]


EXC_BAD_ACCESS(code=EXC_ARM_DA_ALIGN, address=0x25af496b)


Is it possible to fix somehow? May be some compilation flags or 
something else? Or this is very ugly bug of Qt 5.5.0 on iPad 4 with iOS 
8.3???

Thank you.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20150907/fd11c4dc/attachment.html>


More information about the Interest mailing list