I am trying to get WebKit2 to build and run on the GTK platform on Mac OS X 10.10. I have succeeded in building it, but I get a crash in WebProcess when running MiniBrowser that I can't figure out. See https://github.com/ptomato/gtk-osx-build/blob/6eb49c9f56dc5f63adad33c751ae6d0e16b2ae46/modulesets-stable/gtk-osx-unsupported.modules#L233 for a list of the patches I am building with and https://github.com/ptomato/gtk-osx-build/tree/6eb49c9f56dc5f63adad33c751ae6d0e16b2ae46/patches for where those patches are stored. (I'll be filing bugs for each of those patches when I can get this to work.) Here's the backtrace from WebProcess: Exception Type: EXC_BAD_ACCESS (SIGSEGV) Exception Codes: KERN_INVALID_ADDRESS at 0x0000000000000008 Thread 0 Crashed:: Dispatch queue: com.apple.main-thread 0 libwebkit2gtk-4.0.37.dylib 0x000000011f77945c IPC::Connection::isValid() const + 12 1 libwebkit2gtk-4.0.37.dylib 0x000000011f769e5a IPC::Connection::sendMessage(std::__1::unique_ptr<IPC::MessageEncoder, std::__1::default_delete<IPC::MessageEncoder> >, unsigned int) + 58 2 libwebkit2gtk-4.0.37.dylib 0x000000011fabcf8c WebKit::InjectedBundle::postMessage(WTF::String const&, API::Object*) + 636 3 libwebkit2gtk-4.0.37.dylib 0x000000011fd7ff4e didInitiateLoadForResource(OpaqueWKBundlePage const*, OpaqueWKBundleFrame const*, unsigned long long, OpaqueWKURLRequest const*, bool, void const*) + 702 4 libwebkit2gtk-4.0.37.dylib 0x000000010f9c263c WebKit::InjectedBundlePageResourceLoadClient::didInitiateLoadForResource(WebKit::WebPage*, WebKit::WebFrame*, unsigned long long, WebCore::ResourceRequest const&, bool) + 204 5 libwebkit2gtk-4.0.37.dylib 0x000000010faa9ed6 WebKit::WebFrameLoaderClient::assignIdentifierToInitialRequest(unsigned long, WebCore::DocumentLoader*, WebCore::ResourceRequest const&) + 166 6 libwebkit2gtk-4.0.37.dylib 0x0000000110843ed8 WebCore::ResourceLoadNotifier::assignIdentifierToInitialRequest(unsigned long, WebCore::DocumentLoader*, WebCore::ResourceRequest const&) + 88 7 libwebkit2gtk-4.0.37.dylib 0x000000011084ef7b WebCore::ResourceLoader::willSendRequest(WebCore::ResourceRequest&, WebCore::ResourceResponse const&) + 395 8 libwebkit2gtk-4.0.37.dylib 0x000000011085530d WebCore::SubresourceLoader::willSendRequest(WebCore::ResourceRequest&, WebCore::ResourceResponse const&) + 1101 9 libwebkit2gtk-4.0.37.dylib 0x000000011084e2b6 WebCore::ResourceLoader::init(WebCore::ResourceRequest const&) + 1142 10 libwebkit2gtk-4.0.37.dylib 0x0000000110854da7 WebCore::SubresourceLoader::init(WebCore::ResourceRequest const&) + 39 11 libwebkit2gtk-4.0.37.dylib 0x0000000110854cca WebCore::SubresourceLoader::create(WebCore::Frame*, WebCore::CachedResource*, WebCore::ResourceRequest const&, WebCore::ResourceLoaderOptions const&) + 186 12 libwebkit2gtk-4.0.37.dylib 0x0000000110844904 WebCore::ResourceLoadScheduler::scheduleSubresourceLoad(WebCore::Frame*, WebCore::CachedResource*, WebCore::ResourceRequest const&, WebCore::ResourceLoaderOptions const&) + 84 13 libwebkit2gtk-4.0.37.dylib 0x00000001108d1c39 WebCore::CachedResource::load(WebCore::CachedResourceLoader*, WebCore::ResourceLoaderOptions const&) + 2153 14 libwebkit2gtk-4.0.37.dylib 0x00000001108e25ee WebCore::CachedResourceLoader::requestResource(WebCore::CachedResource::Type, WebCore::CachedResourceRequest&) + 2766 15 libwebkit2gtk-4.0.37.dylib 0x00000001108e3250 WebCore::CachedResourceLoader::requestMainResource(WebCore::CachedResourceRequest&) + 64 16 libwebkit2gtk-4.0.37.dylib 0x00000001107c69f1 WebCore::DocumentLoader::startLoadingMainResource() + 1521 17 libwebkit2gtk-4.0.37.dylib 0x00000001107fa3d9 WebCore::FrameLoader::continueLoadAfterWillSubmitForm() + 185 18 libwebkit2gtk-4.0.37.dylib 0x00000001107f54ac WebCore::FrameLoader::continueLoadAfterNavigationPolicy(WebCore::ResourceRequest const&, WTF::PassRefPtr<WebCore::FormState>, bool, WebCore::AllowNavigationToInvalidURL) + 1068 19 libwebkit2gtk-4.0.37.dylib 0x0000000110803631 WebCore::FrameLoader::loadWithDocumentLoader(WebCore::DocumentLoader*, WebCore::FrameLoadType, WTF::PassRefPtr<WebCore::FormState>, WebCore::AllowNavigationToInvalidURL)::$_4::operator()(WebCore::ResourceRequest const&, WTF::PassRefPtr<WebCore::FormState>, bool) const + 97 20 libwebkit2gtk-4.0.37.dylib 0x000000011080350b std::__1::__function::__func<WebCore::FrameLoader::loadWithDocumentLoader(WebCore::DocumentLoader*, WebCore::FrameLoadType, WTF::PassRefPtr<WebCore::FormState>, WebCore::AllowNavigationToInvalidURL)::$_4, std::__1::allocator<WebCore::FrameLoader::loadWithDocumentLoader(WebCore::DocumentLoader*, WebCore::FrameLoadType, WTF::PassRefPtr<WebCore::FormState>, WebCore::AllowNavigationToInvalidURL)::$_4>, void (WebCore::ResourceRequest const&, WTF::PassRefPtr<WebCore::FormState>, bool)>::operator()(WebCore::ResourceRequest const&, WTF::PassRefPtr<WebCore::FormState>&&, bool&&) + 203 21 libwebkit2gtk-4.0.37.dylib 0x000000011083b8ea std::__1::function<void (WebCore::ResourceRequest const&, WTF::PassRefPtr<WebCore::FormState>, bool)>::operator()(WebCore::ResourceRequest const&, WTF::PassRefPtr<WebCore::FormState>, bool) const + 218 22 libwebkit2gtk-4.0.37.dylib 0x0000000110835974 WebCore::PolicyCallback::call(bool) + 148 23 libwebkit2gtk-4.0.37.dylib 0x0000000110837586 WebCore::PolicyChecker::continueAfterNavigationPolicy(WebCore::PolicyAction) + 1062 24 libwebkit2gtk-4.0.37.dylib 0x000000011083b3fe WebCore::PolicyChecker::checkNavigationPolicy(WebCore::ResourceRequest const&, WebCore::DocumentLoader*, WTF::PassRefPtr<WebCore::FormState>, std::__1::function<void (WebCore::ResourceRequest const&, WTF::PassRefPtr<WebCore::FormState>, bool)>)::$_0::operator()(WebCore::PolicyAction) const + 30 25 libwebkit2gtk-4.0.37.dylib 0x000000011083b33e std::__1::__function::__func<WebCore::PolicyChecker::checkNavigationPolicy(WebCore::ResourceRequest const&, WebCore::DocumentLoader*, WTF::PassRefPtr<WebCore::FormState>, std::__1::function<void (WebCore::ResourceRequest const&, WTF::PassRefPtr<WebCore::FormState>, bool)>)::$_0, std::__1::allocator<WebCore::PolicyChecker::checkNavigationPolicy(WebCore::ResourceRequest const&, WebCore::DocumentLoader*, WTF::PassRefPtr<WebCore::FormState>, std::__1::function<void (WebCore::ResourceRequest const&, WTF::PassRefPtr<WebCore::FormState>, bool)>)::$_0>, void (WebCore::PolicyAction)>::operator()(WebCore::PolicyAction&&) + 94 26 libwebkit2gtk-4.0.37.dylib 0x000000010fab356a std::__1::function<void (WebCore::PolicyAction)>::operator()(WebCore::PolicyAction) const + 170 27 libwebkit2gtk-4.0.37.dylib 0x000000010fb07c3c WebKit::WebFrame::didReceivePolicyDecision(unsigned long long, WebCore::PolicyAction, unsigned long long, unsigned long long) + 428 28 libwebkit2gtk-4.0.37.dylib 0x000000010faad9ca WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction(WebCore::NavigationAction const&, WebCore::ResourceRequest const&, WTF::PassRefPtr<WebCore::FormState>, std::__1::function<void (WebCore::PolicyAction)>) + 2618 29 libwebkit2gtk-4.0.37.dylib 0x0000000110836cfe WebCore::PolicyChecker::checkNavigationPolicy(WebCore::ResourceRequest const&, WebCore::DocumentLoader*, WTF::PassRefPtr<WebCore::FormState>, std::__1::function<void (WebCore::ResourceRequest const&, WTF::PassRefPtr<WebCore::FormState>, bool)>) + 1758 30 libwebkit2gtk-4.0.37.dylib 0x00000001107f4cb5 WebCore::FrameLoader::loadWithDocumentLoader(WebCore::DocumentLoader*, WebCore::FrameLoadType, WTF::PassRefPtr<WebCore::FormState>, WebCore::AllowNavigationToInvalidURL) + 2741 31 libwebkit2gtk-4.0.37.dylib 0x00000001107f10c5 WebCore::FrameLoader::load(WebCore::DocumentLoader*) + 437 32 libwebkit2gtk-4.0.37.dylib 0x00000001107f4111 WebCore::FrameLoader::load(WebCore::FrameLoadRequest const&) + 1313 33 libwebkit2gtk-4.0.37.dylib 0x0000000111078e03 WebCore::UserInputBridge::loadRequest(WebCore::FrameLoadRequest const&, WebCore::InputSource) + 51 34 libwebkit2gtk-4.0.37.dylib 0x000000010fb2350c WebKit::WebPage::loadRequest(unsigned long long, WebCore::ResourceRequest const&, WebKit::SandboxExtension::Handle const&, IPC::MessageDecoder&) + 620 35 libwebkit2gtk-4.0.37.dylib 0x000000010fd2083d void IPC::callMemberFunctionImpl<WebKit::WebPage, void (WebKit::WebPage::*)(unsigned long long, WebCore::ResourceRequest const&, WebKit::SandboxExtension::Handle const&, IPC::MessageDecoder&), std::__1::tuple<unsigned long long, WebCore::ResourceRequest, WebKit::SandboxExtension::Handle>, 0ul, 1ul, 2ul>(WebKit::WebPage*, void (WebKit::WebPage::*)(unsigned long long, WebCore::ResourceRequest const&, WebKit::SandboxExtension::Handle const&, IPC::MessageDecoder&), IPC::MessageDecoder&, std::__1::tuple<unsigned long long, WebCore::ResourceRequest, WebKit::SandboxExtension::Handle>&&, std::index_sequence<0ul, 1ul, 2ul>) + 221 36 libwebkit2gtk-4.0.37.dylib 0x000000010fd20690 void IPC::callMemberFunction<WebKit::WebPage, void (WebKit::WebPage::*)(unsigned long long, WebCore::ResourceRequest const&, WebKit::SandboxExtension::Handle const&, IPC::MessageDecoder&), std::__1::tuple<unsigned long long, WebCore::ResourceRequest, WebKit::SandboxExtension::Handle>, std::make_index_sequence<3ul> >(std::__1::tuple<unsigned long long, WebCore::ResourceRequest, WebKit::SandboxExtension::Handle>&&, IPC::MessageDecoder&, WebKit::WebPage*, void (WebKit::WebPage::*)(unsigned long long, WebCore::ResourceRequest const&, WebKit::SandboxExtension::Handle const&, IPC::MessageDecoder&)) + 96 37 libwebkit2gtk-4.0.37.dylib 0x000000010fd11d7b void IPC::handleMessageVariadic<Messages::WebPage::LoadRequest, WebKit::WebPage, void (WebKit::WebPage::*)(unsigned long long, WebCore::ResourceRequest const&, WebKit::SandboxExtension::Handle const&, IPC::MessageDecoder&)>(IPC::MessageDecoder&, WebKit::WebPage*, void (WebKit::WebPage::*)(unsigned long long, WebCore::ResourceRequest const&, WebKit::SandboxExtension::Handle const&, IPC::MessageDecoder&)) + 459 38 libwebkit2gtk-4.0.37.dylib 0x000000010fd0d272 WebKit::WebPage::didReceiveWebPageMessage(IPC::Connection*, IPC::MessageDecoder&) + 2914 39 libwebkit2gtk-4.0.37.dylib 0x000000010fb2d65c WebKit::WebPage::didReceiveMessage(IPC::Connection*, IPC::MessageDecoder&) + 236 40 libwebkit2gtk-4.0.37.dylib 0x000000010fb2d6a7 non-virtual thunk to WebKit::WebPage::didReceiveMessage(IPC::Connection*, IPC::MessageDecoder&) + 55 41 libwebkit2gtk-4.0.37.dylib 0x000000010f679b6d IPC::MessageReceiverMap::dispatchMessage(IPC::Connection*, IPC::MessageDecoder&) + 461 42 libwebkit2gtk-4.0.37.dylib 0x000000010f96d1f7 WebKit::WebProcess::didReceiveMessage(IPC::Connection*, IPC::MessageDecoder&) + 55 43 libwebkit2gtk-4.0.37.dylib 0x000000010f65a563 IPC::Connection::dispatchMessage(IPC::MessageDecoder&) + 51 44 libwebkit2gtk-4.0.37.dylib 0x000000010f650880 IPC::Connection::dispatchMessage(std::__1::unique_ptr<IPC::MessageDecoder, std::__1::default_delete<IPC::MessageDecoder> >) + 368 45 libwebkit2gtk-4.0.37.dylib 0x000000010f65a10c IPC::Connection::dispatchOneMessage() + 1436 46 libwebkit2gtk-4.0.37.dylib 0x000000010f66c952 WTF::FunctionWrapper<void (IPC::Connection::*)()>::operator()(IPC::Connection*) + 114 47 libwebkit2gtk-4.0.37.dylib 0x000000010f66c8d5 WTF::BoundFunctionImpl<WTF::FunctionWrapper<void (IPC::Connection::*)()>, void (IPC::Connection*)>::operator()() + 53 48 libwebkit2gtk-4.0.37.dylib 0x000000010f673822 WTF::Function<void ()>::operator()() const + 114 49 libwebkit2gtk-4.0.37.dylib 0x000000010f67370c std::__1::__function::__func<WTF::Function<void ()>, std::__1::allocator<WTF::Function<void ()> >, void ()>::operator()() + 60 50 libwebkit2gtk-4.0.37.dylib 0x000000010f63769d std::__1::function<void ()>::operator()() const + 141 51 libwebkit2gtk-4.0.37.dylib 0x00000001119de37a WTF::RunLoop::performWork() + 698 52 libwebkit2gtk-4.0.37.dylib 0x00000001119e486d WTF::RunLoop::wakeUp()::$_0::operator()() const + 29 53 libwebkit2gtk-4.0.37.dylib 0x00000001119e47ac std::__1::__function::__func<WTF::RunLoop::wakeUp()::$_0, std::__1::allocator<WTF::RunLoop::wakeUp()::$_0>, void ()>::operator()() + 60 54 libjavascriptcoregtk-4.0.18.dylib 0x0000000115fdc16d std::__1::function<void ()>::operator()() const + 141 55 libjavascriptcoregtk-4.0.18.dylib 0x000000011602d3ca WTF::GMainLoopSource::voidCallback() + 186 56 libjavascriptcoregtk-4.0.18.dylib 0x000000011602a87e WTF::GMainLoopSource::voidSourceCallback(WTF::GMainLoopSource*) + 30 57 libglib-2.0.0.dylib 0x0000000117f0ad56 g_idle_dispatch + 70 (gmain.c:5367) 58 libglib-2.0.0.dylib 0x0000000117f0fa74 g_main_dispatch + 452 (gmain.c:3111) 59 libglib-2.0.0.dylib 0x0000000117f0f893 g_main_context_dispatch + 51 (gmain.c:3713) 60 libglib-2.0.0.dylib 0x0000000117f0fe70 g_main_context_iterate + 480 (gmain.c:3783) 61 libglib-2.0.0.dylib 0x0000000117f10382 g_main_loop_run + 578 (gmain.c:3975) 62 libwebkit2gtk-4.0.37.dylib 0x00000001119e144b WTF::RunLoop::run() + 59 63 libwebkit2gtk-4.0.37.dylib 0x000000010fc8854d int WebKit::ChildProcessMain<WebKit::WebProcess, WebKit::WebProcessMain>(int, char**) + 253 64 libwebkit2gtk-4.0.37.dylib 0x000000010fc883db WebProcessMainUnix + 27 65 WebKitWebProcess 0x000000010f607ed3 main + 67 66 WebKitWebProcess 0x000000010f607e84 start + 52 I'm not sure what can be trying to access memory address 0x8 in IPC::Connection::isValid(), since that method consists entirely of "return m_client". Any help in debugging would be appreciated.
Whatever the cause of this was, it seems to have been fixed in 2.8.0.