我正在开发一款iPhone应用程序,而且我遇到了编译问题。这是低调的:
当它失败时,应用程序甚至不会完成加载。这就是日志的样子:
run
Running…
[Switching to thread 11523]
[Switching to thread 11523]
sharedlibrary apply-load-rules all
continue
Program received signal: “EXC_BAD_ACCESS”.
warning: check_safe_call: could not restore current frame
warning: Unable to restore previously selected frame.
warning: Unable to restore previously selected frame.
warning: Unable to restore previously selected frame.
warning: Unable to restore previously selected frame.
warning: Unable to restore previously selected frame.
我不知道这是怎么回事。我真的想更新我的代码以使用在WWDC上公布的最新功能(隐式@synthesize
,在类别中添加实例变量的能力等),但Clang是必要的。
答案 0 :(得分:3)
看起来像内存上的东西。更具体地说,在堆栈上。
在LLVM和GCC之间的代码生成方面存在一些相当重要但非常微妙的差异。请记住,LLVM-GCC实际上是GCC-> LLVM;也就是说,GCC解析器提供LLVM代码生成引擎。
因此,我怀疑你遇到了一个可爱的边缘案例。 LLVM的codegen中的错误或程序中的错误都表现为这种崩溃。
在我的脑海中,我可以想象,在一个不同的线程上复制一个块然后执行该块的失败可能表现为像这样的崩溃。
在任何情况下,如果可以,请提交错误。