javascript - Windows 上的 HandleScope 构造函数中的 v8 中的 SegFault

标签 javascript c++ windows v8

我用 C++ 开发了一个嵌入了 V8 的 Windows 服务。调试版本运行良好。问题是 Release 版本根本不起作用。

我使用 VisualStudio 2010 将 V8 引擎编译成静态库文件。我将服务的调试版本与 V8 调试库链接在一起,并将服务的发布版本与 V8 发布库链接起来。

Release版本在程序的第一行给出了SegmFault,即HandleScope v8Scope;。 (我实例化了 v8 引擎的本地范围)。

不幸的是,我无法调试,因为我运行的是发布版本,而且我看不出问题是什么,因为调试版本运行正常。

我不明白为什么在尝试实例化作用域时会收到 SegmFault。

您对我如何处理这种情况有什么建议吗?

后期编辑:

使用以下代码,我意识到当前 Isolate 是 NULL。所以,现在我的问题是如何创建一个非 NULL 的 Isolate 上下文。

Isolate* isolate = Isolate::GetCurrent();
if (isolate==NULL)
    return;
Locker v8Locker;
HandleScope v8Scope(isolate);  

谢谢,

最佳答案

如果有人有同样的问题,这里是答案:

由于某些原因,V8 引擎似乎没有调用自己的初始化函数。因此,如果您将 V8::initialize(); 行作为程序的第一行,就可以了。

要创建一个非 NULL 的新 Isolate,您必须调用 Isolate *isolate=Isolate::New()

关于javascript - Windows 上的 HandleScope 构造函数中的 v8 中的 SegFault,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16924087/

相关文章:

c++ - 如何使用 cout 格式化输出

java - 将多行写入 java 中的新文件?

c# - WPF 显示每个图像 x 秒如何?

javascript - 此站点或 IP 无权使用此 API key

javascript - d3.js 动态数据重新加载可能与 exit().remove() 有关

c++ - 如何在不包含 Windows.h 的情况下获得 DebugBreak 的声明?

c++ - 这是一个有效的功能吗?

javascript - 在应用程序打包的本地页面上启用 Electron 中的 nodeIntegration 是否安全?

javascript - 在 Django 表单中包含 Dropzone 表单时无法完成 POST

sql - 如何将图像字段导出到文件?