Part 3 isn't missing, I just wasn't paying attention to formatting. Sorry.

On Wed, Apr 21, 2010 at 4:30 PM, Jack Wootton <[email protected]> wrote:

> I do have backtraces; I documented the problem on qtcreator mailing list
> because initially I thought it was an issue with Creator.  Theres a lot of
> content, split into 6 parts, labelled Part 1 to Part 6, ordered
> chronologically.
>
>
> *Part 1*
>
> I cloned the git repositories for the latest versions of both Qt 4.7 and
> Creator 2.  Qt built successfully as did QtCreator.  However when I run
> Creator, it loads and the IDE "homepage" is displayed, and after about 10
> seconds it crashes with the following Windows error dialog being displayed:
>
> *"The instruction at "0x0072a1ec" refereced memory at 0xffffffff. The
> memory could not be "read".
>
> Click OK to terminate the program
> Clock CANCEL to debug the program”*
>
> * *
>
> *Part 2*
>
> Here's the crash, from the point where qtcreator was launched
>
> / ******************* Start  trace *******************/
>
> Starting program: C:\git\creator\qt-creator\bin/qtcreator.exe
> [New Thread 4840.0x12ec]
> [New Thread 4840.0xdd0]
> [New Thread 4840.0x250]
> [New Thread 4840.0x100c]
> [New Thread 4840.0x7b4]
> [New Thread 4840.0x10a4]
> [New Thread 4840.0x1554]
> [New Thread 4840.0xdb0]
> [New Thread 4840.0x15f0]
> warning: BTMMHOOK 20.04.2010 14:58:16 Thread<12EC> Hook DLL loaded
>
> Utils::SavedAction(0x7b29450) QVariant(bool, false)
> QVariant(QString, "8")
> Unable to detect Qt version for 'T:/'.
> Unable to detect Qt version for 'U:/'.
> Unable to detect Qt version for 'D:/Symbian/9.2/S60_3rd_FP1/'.
> [New Thread 4840.0x7f4]
> [New Thread 4840.0x644]
> [New Thread 4840.0xfd4]
> [New Thread 4840.0xd44]
> [New Thread 4840.0x1700]
>
> Program received signal SIGSEGV, Segmentation fault.
> _mm_set_epi32 (__Z=-1250856, __Y=-1250856, __X=-1250856, __W=-1250856)
>     at C:/MinGW/bin/../lib/gcc/mingw32/3.4.5/include/emmintrin.h:609
>
> / ******************* Finish trace  *******************/
>
>
>
> And here's the backtrace from the point of the crash
>
> / ******************* Start  trace *******************/
>
> #0  _mm_set_epi32 (__Z=-1250856, __Y=-1250856, __X=-1250856, __W=-1250856)
>     at C:/MinGW/bin/../lib/gcc/mingw32/3.4.5/include/emmintrin.h:609
> #1  0x0072a09c in qt_memfill32_sse2 (dest=0x24ff0000, value=4293716440,
> count=28160) at painting/qdrawhelper_sse2.cpp:294
> #2  0x00f576e5 in qt_memfill<unsigned int> (dest=0x24ff0000,
> color=4293716440, count=28160)
>     at
> ../../include/QtGui/private/../../../src/gui/painting/qdrawhelper_p.h:1526
> #3  0x00f59e3c in qt_rectfill<unsigned int> (dest=<incomplete type>,
> value=4293716440, x=0, y=0, width=1280, height=22,
>     stride=5120) at
> ../../include/QtGui/private/../../../src/gui/painting/qdrawhelper_p.h:1567
> #4  0x00f71dc1 in qt_rectfill_template<unsigned int>
> (rasterBuffer=0x24085050, x=0, y=0, width=1280, height=22,
>     color=4293716440, dummy=0) at painting/qdrawhelper.cpp:7405
> #5  0x009547de in qt_rectfill_quint32 (rasterBuffer=0x24085050, x=0, y=0,
> width=1280, height=22, color=4293716440)
>     at painting/qdrawhelper.cpp:7418
> #6  0x0093a713 in fillRect_normalized (r=..., data=0x241b3228,
> pe=0x24220d60) at painting/qpaintengine_raster.cpp:1484
> #7  0x0093cef9 in QRasterPaintEngine::fillRect (this=0x24215db0, r=...,
> data=0x241b3228)
>     at painting/qpaintengine_raster.cpp:1877
> #8  0x0093d3a6 in QRasterPaintEngine::fillRect (this=0x24215db0, r=...,
> brush=...)
>     at painting/qpaintengine_raster.cpp:1921
> #9  0x008c1338 in QPainter::fillRect (this=0x22cc7c, r=..., brush=...) at
> painting/qpainter.cpp:6881
> #10 0x0079783b in fillRegion (painter=0x22cc7c, rgn=..., brush=...) at
> kernel/qwidget.cpp:2198
> #11 0x00797353 in QWidgetPrivate::paintBackground (this=0x6837278,
> painter=0x22cc7c, rgn=..., flags=5)
>     at kernel/qwidget.cpp:2229
> #12 0x0079f667 in QWidgetPrivate::drawWidget (this=0x6837278,
> pdev=0x24215c48, rgn=..., offset=..., flags=5,
>     sharedPainter=0x0, backingStore=0x24207cc8) at kernel/qwidget.cpp:5291
> #13 0x009828d8 in QWidgetBackingStore::sync (this=0x24207cc8) at
> painting/qbackingstore.cpp:1300
> #14 0x00794f7c in QWidgetPrivate::syncBackingStore (this=0x6837278) at
> kernel/qwidget.cpp:1703
> #15 0x007a9766 in QWidget::event (this=0x6837198, event=0x24215df8) at
> kernel/qwidget.cpp:8379
> #16 0x00c4f66e in QMainWindow::event (this=0x6837198, event=0x24215df8) at
> widgets/qmainwindow.cpp:1417
> #17 0x6e8082aa in Core::Internal::EventFilteringMainWindow::event
> (this=0x6837198, event=0x24215df8)
>     at eventfilteringmainwindow.cpp:65
> #18 0x0074302e in QApplicationPrivate::notify_helper (this=0x3d58b0,
> receiver=0x6837198, e=0x24215df8)
>     at kernel/qapplication.cpp:4341
> #19 0x00742eb2 in QApplication::notify (this=0x22ff30, receiver=0x6837198,
> e=0x24215df8) at kernel/qapplication.cpp:4306
> #20 0x6a254327 in QCoreApplication::notifyInternal (this=0x22ff30,
> receiver=0x6837198, event=0x24215df8)
>     at kernel/qcoreapplication.cpp:704
> #21 0x6a2e7f37 in QCoreApplication::sendEvent (receiver=0x6837198,
> event=0x24215df8)
>     at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
> #22 0x6a2556e9 in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0,
> event_type=0, data=0x3d59f0)
>     at kernel/qcoreapplication.cpp:1345
> #23 0x6a287dd6 in qt_internal_proc (hwnd=0x3027e, message=1025, wp=0, lp=0)
> at kernel/qeventdispatcher_win.cpp:501
> #24 0x7e418724 in USER32!GetDC () from C:\WINDOWS\system32\user32.dll
> #25 0x0003027e in ?? ()
> #26 0x00000401 in ?? ()
> #27 0x00000000 in ?? ()
>
> / ******************* Finish  trace *******************/
>
>
>
> *Part 4*
>
> The penultimate function call is a QT function: void
> qt_memfill32_sse2(quint32 *dest, quint32 value, int count)
>
> located in \src\gui\painting\qdrawhelper_sse2.cpp
>
> This function calls _mm_set_epi32(value, value, value, value) which is
> defined as part of the GCC port, MinGW.  This is the last function call
> before the crash.
>
> The value of the 'value' parameter provided by the QT function
> "qt_memfill32_sse2" is 4293716440.
>
> 4293716440 is the Two's Complement of -1,250,856, which fits with the last
> bit of output from gdb:
>
> _mm_set_epi32 (__Z=-1250856, __Y=-1250856, __X=-1250856, __W=-1250856)
>
>
>
> I don't see any issues with this since the documentation for _mm_set_epi32
> (http://msdn.microsoft.com/en-us/library/019beekt.aspx) states "Sets the 4
> signed 32-bit integer values." The value 4293716440 is less than 2^32, so it
> is within the range of a 32 bit int, and it can be signed.
>
>
>
> *Part 5*
>
> I decided to revert to the slightly older *binary* download of Creator
> from the Qt 4.7 snapshot page:
> http://qt.nokia.com/developer/qt-qtcreator-prerelease#download
>
> It installs and opens fine, but when loading a QML project and attempting
> to debug it I receive a very similar error to the one I previously reported
> wit the QtCreator crash.  This time QtCreator remains open since it is
> debugging an application that triggered the crash (and not QtCreator
> itself).  The callstack however seems identical to the backtrace I provided
> when *the very latest* QtCreator (from git) was crashing.  Here's the
> callstack from my application crash using QtCreator binary release:
>
> 0    _mm_set_epi32    emmintrin.h    609    0x0062a1ec
> 1    qt_memfill32_sse2    qdrawhelper_sse2.cpp    294    0x0062a09c
> 2    qt_memfill<unsigned int>    qdrawhelper_p.h    1526    0x00e576e5
> 3    qt_rectfill<unsigned int>    qdrawhelper_p.h    1567    0x00e59e3c
> 4    qt_rectfill_template<unsigned int>    qdrawhelper.cpp    7405
> 0x00e71dc1
> 5    qt_rectfill_quint32    qdrawhelper.cpp    7418    0x008547de
> 6    fillRect_normalized    qpaintengine_raster.cpp    1484
> 0x0083a713
> 7    QRasterPaintEngine::fillRect    qpaintengine_raster.cpp    1877
> 0x0083cef9
> 8    QRasterPaintEngine::fillRect    qpaintengine_raster.cpp    1921
> 0x0083d3a6
> 9    QPainter::fillRect    qpainter.cpp    6881    0x007c1338
> 10    fillRegion    qwidget.cpp    2198    0x0069783b
> 11    QWidgetPrivate::paintBackground    qwidget.cpp    2233
> 0x006973d4
> 12    QWidgetPrivate::drawWidget    qwidget.cpp    5291    0x0069f667
> 13    QWidgetPrivate::paintSiblingsRecursive    qwidget.cpp    5520
> 0x006a0b95
> 14    QWidgetPrivate::drawWidget    qwidget.cpp    5362    0x0069ff30
> 15    QWidgetBackingStore::sync    qbackingstore.cpp    1300
> 0x008828d8
> 16    QWidgetPrivate::syncBackingStore    qwidget.cpp    1703
> 0x00694f7c
> 17    QWidget::event    qwidget.cpp    8379    0x006a9766
> 18    QFrame::event    qframe.cpp    557    0x00b27231
> 19    QAbstractScrollArea::event    qabstractscrollarea.cpp    989
> 0x00be5379
> 20    QGraphicsView::event    qgraphicsview.cpp    2666    0x00dd5e31
>
> The problem points to the same source files in the same places as the
> backtrace from the QtCreator crash i.e. emmintrin.h line 609 in the function
>
> /* Create the vector [Z Y X W].  */
> static __inline __m128i _mm_set_epi32 (int __Z, int __Y, int __X, int __W)
>
>
>
> *Part 6*
>
> Based on advice from mailing list members, I tried running qtdemo.exe from
> my compiled version of Qt 4.7. qtdemo.exe crashes with segmentation fault
> too, so it's not a Creator issue.  The backtrace from gdb is different
> though.
>
>
>
>
>
>
>
>
>
>
> On Wed, Apr 21, 2010 at 3:06 PM, Thiago Macieira <
> [email protected]> wrote:
>
>> Em Quarta-feira 21 Abril 2010, às 14:52:29, ext Jack Wootton escreveu:
>> > Hello,
>> >
>> > I downloaded the very latest Qt 4.7 and QtCreator 2.0 from their
>> respective
>> > git repositories.  Both Qt and Creator built successfully, however
>> > QtCreator crashes on startup with a segmentation fault.  Using gdb the
>> > final call in the backtrace pointed to a file in the Windows gcc port
>> > MingGW.  A colleague experienced a similar segmentation fault when
>> running
>> > their application from Creator 2.0.
>>
>> Hello
>>
>> Could you post the backtrace that you get? Which compilation options did
>> you
>> use?
>>
>> Also, since you're using Windows, can you tell us if you have other
>> versions
>> of MinGW, Cygwin or Dev-C++ installed?
>>
>> > Having spoken with a second colleague I was informed that Qt 4.7 doesn’t
>> > build with MinGW, at least not without some Makefile hacking.  Since
>> I’ve
>> > spent over one week attempting to build Qt 4.7 with MinGW and would have
>> > spent longer, would it be helpful to others to strongly recommend the
>> > Microsoft Visual Studio compiler when building Qt?
>>
>> We have some problems with MinGW in that the compiler crashes while
>> compiling
>> Qt. Sometimes, moving the code around fixes the issue (or hides it). As Qt
>> 4.7
>> development is still at a fast pace, these issues pop up and disappear
>> quite
>> frequently. In any case, it's not our fault: if the compiler crashes, it's
>> a
>> bug in the compiler.
>>
>> But there should be no need for Makefile hacking. If you find out what
>> those
>> people are recommending, we'd be interested in knowing.
>>
>> > Currently there is no mention of this problem on the Windows
>> installation
>> > web pages<http://doc.qt.nokia.com/4.7-snapshot/install-win.html>,
>> indeed
>> > MinGW is included in the instructions.
>>
>> Because we know of no problems. It should be working.
>>
>> --
>> Thiago Macieira - thiago.macieira (AT) nokia.com
>>  Senior Product Manager - Nokia, Qt Development Frameworks
>>     Sandakerveien 116, NO-0402 Oslo, Norway
>>
>> Please don't send me .pptx -- prefer .odp or .ppt
>>
>> _______________________________________________
>> Qt4-preview-feedback mailing list
>> [email protected]
>> http://lists.trolltech.com/mailman/listinfo/qt4-preview-feedback
>>
>>
>
>
> --
> Regards
> Jack
>



-- 
Regards
Jack
_______________________________________________
Qt4-preview-feedback mailing list
[email protected]
http://lists.trolltech.com/mailman/listinfo/qt4-preview-feedback

Reply via email to