iOS9 上的 JavaScriptCore 崩溃
Posted
技术标签:
【中文标题】iOS9 上的 JavaScriptCore 崩溃【英文标题】:JavaScriptCore crash on iOS9 【发布时间】:2015-09-19 03:29:51 【问题描述】:仅遇到 ios9 崩溃。尽管我不确定它与 javascriptCore 有什么关系,但崩溃正在 JavaScriptCore 中显现。我更倾向于相信这是一个内存耗尽的问题,更具体地说,可能是虚拟内存耗尽。正如屏幕截图中所指出的那样,免费 RAM 非常低,因此绝对不是理想的情况。我对 iOS 内部的了解还不够,无法完全了解这里发生了什么,但想知道是否还有其他人在 iOS9 中遇到过这种类型的事情。在 iOS 7.x、iOS 8.x 上,这对我来说不是问题
【问题讨论】:
这个运气好吗?对于仅使用 iOS9 的应用程序,我已经看到几乎相同的崩溃,与上述类似,显示来自 WTF: HashTable 的消息...但崩溃来自 Javascriptcore。 嘿@StuartM 是的,确实在这方面取得了一些进展。我将对此进行回复。在我们的例子中,问题是我们为运行 JS 脚本而创建的 JSContext 对象,然后在不应该释放它时释放它。 Xcode 静态分析器实际上选择了这个。一旦我将代码更改为不发布时,它不应该一切似乎都运行良好。 感谢@Rob Segal。不幸的是,我们没有使用任何自定义 JS,所以它看起来并不相关,我想这是我们需要继续监控的第三方库崩溃。谢谢 当然没问题@StuartM。我相当确信带有 iOS9/Xcode7 的 JavaScriptCore 发生了一些变化,所以我的感觉是肯定的,肯定是带有 3rd-party 库的东西。特别是如果供应商还没有针对 iOS9 进行更新。 【参考方案1】:这种情况下的问题似乎是从一段代码中释放了一个 JSContext 对象,该代码不是设置为运行 JavaScript 的所有者。 Xcode 在静态分析器中标记它,一旦发布调用被删除,一切都很好。我有点犹豫要不要说这是肯定的问题,因为崩溃并不是 100% 发生的,但考虑到更改之前/之后的测试,这似乎很有可能。
【讨论】:
以上是关于iOS9 上的 JavaScriptCore 崩溃的主要内容,如果未能解决你的问题,请参考以下文章
UIWebView iOS 5:WebKit/JavaScriptCore 崩溃