这两个节点控制台和QT5的V8为基础QJSEngine可以通过以下代码崩溃:
a = []; for (;;) { a.push("hello"); }
Run Code Online (Sandbox Code Playgroud)
崩溃前节点的输出:
FATAL ERROR: JS Allocation failed - process out of memory
Run Code Online (Sandbox Code Playgroud)
QJSEngine崩溃前的输出:
#
# Fatal error in JS
# Allocation failed - process out of memory
#
Run Code Online (Sandbox Code Playgroud)
如果我QJSEngine在调试器下运行我的测试应用程序(见下文),它会v8::internal::OS::DebugBreak在V8代码中显示一个调用.如果我换行代码调用QJSEngine::evaluate到__try-__except(SEH),然后应用程序不会崩溃,但这种方法是针对Windows的.
问题:有没有v8::internal::OS::DebugBreak办法在节点和Qt应用程序中以独立于平台的方式处理?
=== QJSEngine测试代码===
开发环境:QtCreator,Qt5和Windows SDK 7.1,在Windows XP SP3上
QJSEngineTest.pro:
TEMPLATE = app
QT -= gui
QT += core qml
CONFIG -= app_bundle
CONFIG += console …Run Code Online (Sandbox Code Playgroud)