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