2010-01-20 140 views
4

我已经在Windows下编译了64位体系结构的Qt,除了QtScript以外,所有工作都正常。以下简单的代码与32位Qt for Windows完美配合,如果使用64位Qt编译,则会崩溃。也许这是我的代码中的错误?或者Qt与64位不兼容?或者是其他东西?欢迎任何评论。QtScript:在64位窗口崩溃

Visual Studio中报告该崩溃是基于C的641线中发生:\ Qt的\

#include <QtCore/QCoreApplication> 
#include <QScriptEngine> 
int main(int argc, char *argv[]) 
{ 
    QCoreApplication app(argc, argv); 
    QScriptEngine oEngine; 
    oEngine.evaluate("function foo(){var a=[[0]]; a[0][0];}"); 
    for(;;) 
    { 
    oEngine.evaluate("foo").call(); 
    } 
} 
+0

这是本周打开的错误(甚至可能是你=))。 http://bugreports.qt.nokia.com/browse/QTBUG-7433 – Wildcat 2010-01-23 21:09:52

+0

由我打开,但它没有从巨魔的反应,但它是否错误:(据我所知,这将需要几个月的时间'评估'一个错误并作出一些决定 – grigoryvp 2010-01-24 09:31:35

+0

你在崩溃时收到了什么错误? – funwithcoding 2010-01-26 13:24:17

回答

3

碰撞被内部JavaScriptCore的,这是从所述的WebKit项目(http://webkit.org/projects/javascript/index.html)第三方组件发生4.6.1 \ src \ 3rdparty \ javascriptcore \ JavaScriptCore \ runtime \ JSObject.h并停止在对JSCell :: getOwnPropertySlot(JSCell.cpp:126)的调用中。堆栈跟踪为:

QtScriptd4.dll QTJSC :: JSValue ::获得
QtScriptd4.dll QTJSC :: JSValue ::获得
QtScriptd4.dll QTJSC ::口译:: privateExecute
QtScriptd4 !!!。 dll的!QTJSC ::口译::执行
QtScriptd4.dll!QTJSC :: JSFunction ::调用
QtScriptd4.dll!QTJSC ::调用
QtScriptd4.dll!QScriptValue ::调用
test.exe的!主要

有很多警告在Windows上使用Visual C++编译器构建WebKit组件时可能出现的64位问题,因此我怀疑它不是支持或已调试的配置。

我已经更新了QT错误报告QTBUG-7344