v8在Windows上的HandleScope构造函数中的SegFault



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

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

发布版本在程序的第一行给出分段故障,即HandleScope v8Scope;。(我实例化了v8引擎的局部作用域)。

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

我不明白为什么我收到段故障,当我试图实例化范围。

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

LaterEdit:

使用下面的代码,我意识到当前的隔离是NULL。所以,现在我的问题是如何创建一个非NULL的隔离上下文。
Isolate* isolate = Isolate::GetCurrent();
if (isolate==NULL)
    return;
Locker v8Locker;
HandleScope v8Scope(isolate);  

谢谢,

如果有人有同样的问题,下面是答案:

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

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

最新更新