我正在尝试在我的Qt应用程序中实现V8调试器,但我得到了例外。
我有2个主题:main(处理GUI和调试器命令)和引擎线程(运行javascript代码)。
在主线程中,我通过调用:
来初始化V8V8::InitializeICU();
mPlatform = platform::CreateDefaultPlatform();
V8::InitializePlatform(mPlatform);
V8::Initialize();
我在引擎线程中创建了一个隔离区:
ArrayBufferAllocator* allocator = new ArrayBufferAllocator();
Isolate::CreateParams create_params;
create_params.array_buffer_allocator = allocator;
isolate = Isolate::New(create_params);
在主线程中,我正在使用SetMessageHandler
isolate->Enter();
v8::Debug::SetMessageHandler(HandleMessage);
// HandlMessage function:
void HandleMessage(const v8::Debug::Message& message) {
v8::String::Utf8Value response(message.GetJSON());
// TODO do something with |response|
}
与SetMessageHandler一致,我得到了读取访问冲突
这是调用堆栈:
FWIW我也曾在v8-users讨论小组上询问过。 (还没有答案)
提前致谢!