SegFault в v8 на Windows в конструкторе HandleScope

Я разработал Службу Windows на C++ со встроенным V8. Отладочная версия работает хорошо. Проблема в том, что версия Release вообще не работает.

Я скомпилировал движок V8 с помощью VisualStudio 2010 в файл static-lib. Я связал версию сервиса Debug с библиотеками отладки V8, а версию Release сервиса с библиотеками выпуска V8.

Релиз версия дает SegmFault в первой строке программы, которая HandleScope v8Scope;, (Я создал локальную область для двигателя v8).

К сожалению, я не могу отладить, потому что я запускаю версию выпуска, и я не вижу, в чем проблема, потому что в отладочной версии работает нормально.

Я не понимаю, почему я получаю SegmFault, когда я пытаюсь создать экземпляр области.

Есть ли у вас какие-либо предложения для меня, как подойти к этой ситуации?

LaterEdit:

Используя следующий код, я понял, что текущий изолятор равен NULL. Итак, теперь мой вопрос заключается в том, как создать контекст изоляции, который не является NULL.

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

Спасибо,

1 ответ

Если у кого-то есть такая же проблема, вот ответ:

Почему-то кажется, что движок V8 не вызывает собственную функцию инициализации. Так что, если вы поставите линию V8::initialize(); как первая строка вашей программы, все будет хорошо.

Чтобы создать новый Isolate, который не является NULL, вы должны позвонить Isolate *isolate=Isolate::New()

Другие вопросы по тегам