Hi! I'm running an electron app, that loads native application (using ffi) that renders content into a canvas in electron. This native C++ code has an embedded V8 inside it. I'm compiling V8 into dynamic libraries (.dylib files) (use_component_build is set to true).
My issue is that the V8 inside Electron seems to clash with my V8 instance (they are not the same version), but only on macOS. If you look at the call-stack below of the segmentation fault, you can see that it begins in *libv8.dylib*, but ends up somehow in *libnode.dylib* which I can't really explain. Thread 16 Crashed: 0 libnode.dylib 0x0000000108306911 0x107c70000 + 6908177 1 libnode.dylib 0x000000010830609c void v8::internal::LookupIterator::Start <false>() + 60 2 libv8.dylib 0x0000000118bbc354 v8::internal::JSObject:: SetOwnPropertyIgnoreAttributes(v8::internal::Handle<v8::internal::JSObject>, v8::internal::Handle<v8::internal::Name>, v8::internal::Handle<v8::internal ::Object>, v8::internal::PropertyAttributes) + 164 (js-objects.cc:3148) 3 libv8.dylib 0x0000000118a9bc06 v8::internal::Genesis:: GetThrowTypeErrorIntrinsic() + 118 (handles.h:144) 4 libv8.dylib 0x0000000118a9c13d v8::internal::Genesis:: AddRestrictedFunctionProperties(v8::internal::Handle<v8::internal:: JSFunction>) + 29 (bootstrapper.cc:1109) 5 libv8.dylib 0x0000000118ab1de5 v8::internal::Genesis::Genesis(v8::internal ::Isolate*, v8::internal::MaybeHandle<v8::internal::JSGlobalProxy>, v8:: Local<v8::ObjectTemplate>, unsigned long, v8:: DeserializeInternalFieldsCallback, v8::MicrotaskQueue*) + 1269 (bootstrapper .cc:5446) 6 libv8.dylib 0x0000000118a9b209 v8::internal::Bootstrapper:: CreateEnvironment(v8::internal::MaybeHandle<v8::internal::JSGlobalProxy>, v8 ::Local<v8::ObjectTemplate>, v8::ExtensionConfiguration*, unsigned long, v8 ::DeserializeInternalFieldsCallback, v8::MicrotaskQueue*) + 89 (bootstrapper .cc:5374) 7 libv8.dylib 0x00000001188862aa v8::NewContext(v8::Isolate*, v8:: ExtensionConfiguration*, v8::MaybeLocal<v8::ObjectTemplate>, v8::MaybeLocal< v8::Value>, unsigned long, v8::DeserializeInternalFieldsCallback, v8:: MicrotaskQueue*) + 1722 (api.cc:5697) 8 libv8.dylib 0x00000001188866fa v8::Context::New(v8::Isolate*, v8:: ExtensionConfiguration*, v8::MaybeLocal<v8::ObjectTemplate>, v8::MaybeLocal< v8::Value>, v8::DeserializeInternalFieldsCallback, v8::MicrotaskQueue*) + 42 (api.cc:5856) Is it possible that when libv8.dylib loads the subsequent .dylib files with *dlopen()* (such as *libv8_platform.dylib* etc.) that dlopen somehow fetches the V8 symbols inside the libnode.dylib? Electron version I'm using: 1.8.8 V8 versions I'm using in my app: 7.2 (I tried it with 7.8 too but with the same results) Could anyone help me out how to avoid this? -- -- v8-users mailing list v8-users@googlegroups.com http://groups.google.com/group/v8-users --- You received this message because you are subscribed to the Google Groups "v8-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to v8-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/v8-users/6fea6464-2ab7-4785-bef2-e0c69b9a0801%40googlegroups.com.