相关疑难解决方法(0)

当进程内存不足时,如何处理V8引擎崩溃

这两个节点控制台和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)

v8 debugbreak seh node.js qt5

8
推荐指数
1
解决办法
3471
查看次数

标签 统计

debugbreak ×1

node.js ×1

qt5 ×1

seh ×1

v8 ×1