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()