Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/113.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 垃圾收集时断言失败_Javascript_Ios_Debugging_Garbage Collection_Spidermonkey - Fatal编程技术网

Javascript 垃圾收集时断言失败

Javascript 垃圾收集时断言失败,javascript,ios,debugging,garbage-collection,spidermonkey,Javascript,Ios,Debugging,Garbage Collection,Spidermonkey,我将SpiderMonkey嵌入到iOS应用程序中,在执行JS_GC和JS_MaybeGC时,断言失败。在我的iPhone上进行测试时,这种情况更常见,但在模拟器中也会发生。特别是,断言失败是: Assertion failure: kind == GetGCThingTraceKind(*thingp), at /Users/rquesada/progs/Spidermonkey/js/src/gc/Marking.cpp:366 我不太熟悉如何嵌入SpiderMonkey。我应该从哪里开始

我将SpiderMonkey嵌入到iOS应用程序中,在执行
JS_GC
JS_MaybeGC
时,断言失败。在我的iPhone上进行测试时,这种情况更常见,但在模拟器中也会发生。特别是,断言失败是:

Assertion failure: kind == GetGCThingTraceKind(*thingp), at /Users/rquesada/progs/Spidermonkey/js/src/gc/Marking.cpp:366

我不太熟悉如何嵌入SpiderMonkey。我应该从哪里开始找出并修复这个bug?我的应用程序中只有一个全局对象、一个运行时和一个上下文,它们都是从主线程运行的。

原因是我将一个
\u块
变量传递给
JS\u AddValueRoot
JS_Add*Root
函数对内存地址进行操作,并且:

__块变量最初是在堆栈上分配的,但是如果复制了引用它们的任何块,它们就会被移动到堆上(malloced)

这导致GCer认为有什么东西没有导致它崩溃