Monkey Studio IDE The way IDEs should be

Possible bug loading ".pro" file.

Error when loading ".pro":

monkeystudio.exe caused an Access Violation at location 7c80976f in module kernel32.dll Writing to location 00000001.

Registers:
eax=00000001 ebx=0000000b ecx=00000001 edx=0000000b esi=045a4040 edi=00000004
eip=7c80976f esp=0022a898 ebp=0022af14 iopl=0 nv up ei pl nz na pe nc
cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000202

Call stack:
7C80976F kernel32.dll:7C80976F InterlockedIncrement
0451D37F QMake.dll:0451D37F qt_plugin_instance
00542969 monkeystudio.exe:00542969 _ZN15XUPProjectModel4openERK7QStringS2_
0054BE01 monkeystudio.exe:0054BE01 _ZN17XUPProjectManager11openProjectERK7QStringS2_
0054C69B monkeystudio.exe:0054C69B _ZN17XUPProjectManager11openProjectEv
00568153 monkeystudio.exe:00568153 _ZN17XUPProjectManager11qt_metacallEN11QMetaObject4CallEiPPv
6A33BC73 QtCore4.dll:6A33BC73 _ZN11QMetaObject8activateEP7QObjectiiPPv
65101F87 QtGui4.dll:65101F87 _ZN7QAction9triggeredEb
651023AA QtGui4.dll:651023AA _ZN7QAction8activateENS_11ActionEventE
655F3C01 QtGui4.dll:655F3C01 _ZN5QMenu10wheelEventEP11QWheelEvent
655F6C93 QtGui4.dll:655F6C93 _ZN5QMenu17mouseReleaseEventEP11QMouseEvent
6516FE62 QtGui4.dll:6516FE62 _ZN7QWidget5eventEP6QEvent
655F0BE0 QtGui4.dll:655F0BE0 _ZN5QMenu5eventEP6QEvent
6510C20C QtGui4.dll:6510C20C _ZN19QApplicationPrivate13notify_helperEP7QObjectP6QEvent
6510D446 QtGui4.dll:6510D446 _ZN12QApplication6notifyEP7QObjectP6QEvent
6A32607B QtCore4.dll:6A32607B _ZN16QCoreApplication14notifyInternalEP7QObjectP6QEvent
6510F077 QtGui4.dll:6510F077 _ZN19QApplicationPrivate14sendMouseEventEP7QWidgetP11QMouseEventS1_S1_PS1_R8QPointerIS0_E
65184873 QtGui4.dll:65184873 _ZN12QApplication8winFocusEP7QWidgetb
65187CB3 QtGui4.dll:65187CB3 _ZN19QApplicationPrivate10closePopupEP7QWidget
77D18744 USER32.dll:77D18744 GetDC
77D18826 USER32.dll:77D18826 GetDC
77D189DD USER32.dll:77D189DD GetWindowLongW
77D18A20 USER32.dll:77D18A20 DispatchMessageW
6A35C0AF QtCore4.dll:6A35C0AF _ZN21QEventDispatcherWin3213processEventsE6QFlagsIN10QEventLoop17ProcessEventsFlagEE
6518BF00 QtGui4.dll:6518BF00 _Z25qWinProcessConfigRequestsv
6A3259D8 QtCore4.dll:6A3259D8 _ZN10QEventLoop13processEventsE6QFlagsINS_17ProcessEventsFlagEE
6A325BD9 QtCore4.dll:6A325BD9 _ZN10QEventLoop4execE6QFlagsINS_17ProcessEventsFlagEE
6A32BB3B QtCore4.dll:6A32BB3B _ZN16QCoreApplication4execEv
0050779A monkeystudio.exe:0050779A _ZN17UIBuilderSettingsC2EP13BuilderPluginP7QWidget
00568C6A monkeystudio.exe:00568C6A _ZN21UIInterpreterSettings11qt_metacallEN11QMetaObject4CallEiPPv
005689AA monkeystudio.exe:005689AA _ZN21UIInterpreterSettings11qt_metacallEN11QMetaObject4CallEiPPv
004011E7 monkeystudio.exe:004011E7
00401258 monkeystudio.exe:00401258
7C816FD7 kernel32.dll:7C816FD7 RegisterWaitForInputIdle
----------------------------------------------------------------------------------
.PRO:

TEMPLATE = app
TARGET = AmatelUpdater
DEPENDPATH += .
INCLUDEPATH += . C:\QT\4.4.0\include\QTNetwork C:\QT\4.4.0\include\QTXml

# Input
HEADERS += amatelupdater.h downloadedfile.h vfile.h
FORMS += amatelupdater.ui
SOURCES += amatelupdater.cpp downloadedfile.cpp main.cpp vfile.cpp
UI_DIR = bin/tmp/ui
DESTDIR = bin
MOC_DIR = bin/tmp/release/mocs
OBJECTS_DIR = bin/tmp/release/obj
RCC_DIR = bin/tmp/release/rcc
QT += xml network
CONFIG += exceptions thread warn_on rtti

Ops! Solved.

The problem is "C:\QT\4.4.0\include\QTNetwork C:\QT\4.4.0\include\QTXml ", if the path doesn't exist.

pasnox's picture

No, the true problem is that

No, the true problem is that you can't use \ as path separator as it's normally used to separate multiline value.
See this example :

INCLUDEPATH += path/to/where/you/want \
path/ok/to/another/folder \
last/path

As you can see it's bad using \ as path separator, and our parser don't handle that ( and crash :( ).
QMake try to handle both, but in the qmake doc it's clearly write that path should be filled with unix separator.

In all case, our pro parser should not crash, even on trying to open buggy pro file: i will try to fix that.

You can seek team on IRC.
If you don't know what is IRC, then go to the IRC page.
If you want an answer, please be explicit and verbose.
Help by email will be ignored.