2010-01-20 138 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