【发布时间】:2014-03-28 15:14:32
【问题描述】:
我们使用JavaScriptCore 在即将推出的应用程序中运行大部分业务逻辑。应用程序有时会崩溃,并出现以下错误:
FATAL ERROR: JavaScript garbage collection failed because thread_get_state returned an error (268435459). This is probably the result of running inside Rosetta, which is not supported.
/SourceCache/JavaScriptCoreEmbedded/JavaScriptCoreEmbedded-1218.33/heap/MachineStackMarker.cpp(350) : size_t JSC::getPlatformThreadRegisters(const PlatformThread &, PlatformThreadRegisters &)
它是 iOS,所以它肯定不会在 Rosetta 中运行,并且会在模拟器和实际 iPhone 上发生。
这似乎主要发生在使用URLSession 上传图像时。我们已经确保所有对 javascript 上下文的调用都是从同一个线程进行的,因为我们在其他地方读到,来自另一个线程的回调可能会给出这个错误,但这并没有帮助。 (而且,根据JavaScriptCore 文档,JavaScriptCore 无论如何都应该是完全线程安全的)
那么,有人有什么想法吗?
【问题讨论】:
-
你应该包含一个stackoverflow.com/help/mcve
-
不幸的是,这是问题的一部分,我目前找不到,至少在不提交或多或少的整个申请的情况下找不到。我们似乎随机发生了崩溃,我们无法追踪导致它崩溃的原因。它在不同的时间和不同的电话上崩溃。我们正在尝试找到一个可验证的最小版本,如果我们这样做了,我们可能也已经解决了这个问题,但目前我们还无法...
-
所以,基本上,我们不希望得到错误的准确答案,因为如果没有代码示例,这显然是不可能的。我们只是想知道是否有人知道导致这种情况发生的任何条件/错误/错误。我们已经听说从另一个线程进行回调会导致这种情况发生(我们没有),所以,有没有人遇到过导致这种情况的其他情况。
标签: ios garbage-collection javascriptcore