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
_______________________________________________
Qt4-preview-feedback mailing list
[email protected]
http://lists.trolltech.com/mailman/listinfo/qt4-preview-feedback

Reply via email to