问题描述
嘿,伙计们,我知道大约有 100.000 个线程关于 EXC_BAD_ACCESS (SIGSEGV) 错误.但是没有人帮我.我自己无法解决我的问题.
Hey Guys,I know there are about 100.000 thread about EXC_BAD_ACCESS (SIGSEGV) Errors. But no one helped me out. I'm not able to solve my problem myself.
几个小时前,我复制了我的 Xcode 项目(一个 iPhone 游戏)的目标来制作一个免费版本.但是从这一点开始,我得到了非常奇怪的错误.有时该应用程序就像什么也没发生一样工作.但大多数情况下,我会收到这样的错误:
A few hours ago, I duplicated the target of my Xcode Project (a iPhone game) to make a free version. But since this Point I get very strange errors. Sometimes the app works as if nothing happened. But most of the time, I get errors like this:
Running pass 'X86 DAG->DAG Instruction Selection' on function '@gleLLVMVecPrimMultiRender13'
堆栈看起来像这样:
Thread 0 Crashed: Dispatch queue: com.apple.main-thread
0 libobjc.A.dylib 0x015c6c6f prepareForMethodLookup + 31
1 libobjc.A.dylib 0x015c06ad lookUpMethod + 86
2 libobjc.A.dylib 0x015c081a _class_lookupMethodAndLoadCache + 40
3 libobjc.A.dylib 0x015ceaa3 objc_msgSend + 87
4 Birdy Free 0x0001b46d -[SMApplicationManager dealloc] + 58 (SMApplicationManager.m:226)
5 Foundation 0x00489257 -[NSURLConnection(NSURLConnectionReallyInternal) releaseDelegate] + 57
6 Foundation 0x004891f9 _NSURLConnectionReleaseClient + 68
7 CFNetwork 0x01a45742 ClientContextHolder<CFURLConnectionClient_V4>::forget() + 48
8 CFNetwork 0x01a3beee URLConnectionClient::processEvents() + 278
9 CFNetwork 0x01a3bcb7 MultiplexerSource::perform() + 251
10 CoreFoundation 0x0144e01f __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 15
11 CoreFoundation 0x013ac28b __CFRunLoopDoSources0 + 571
12 CoreFoundation 0x013ab786 __CFRunLoopRun + 470
13 CoreFoundation 0x013ab240 CFRunLoopRunSpecific + 208
14 CoreFoundation 0x013ab161 CFRunLoopRunInMode + 97
15 GraphicsServices 0x02a13268 GSEventRunModal + 217
16 GraphicsServices 0x02a1332d GSEventRun + 115
17 UIKit 0x0086d42e UIApplicationMain + 1160
18 Birdy Free 0x000024a0 main + 82 (main.m:13)
19 Birdy Free 0x00002445 start + 53
但是调用的方法并不总是相同的.在这种情况下,它是 [SMApplicationManager dealloc],几分钟前它是 [CCNode draw].我无法找到此错误的来源.我认为这与第二个目标有关.有没有大佬知道的?
But the method called is not always the same. In this case it was [SMApplicationManager dealloc] and a few minutes ago it was [CCNode draw]. I can't get the source of this error. I think it has something to do with the second target.Do any of you guys know anything more?
桑德罗·迈耶
推荐答案
经过几个小时令人沮丧的实验,我终于找到了解决方案.整件事与第二个目标无关.问题是 NSURLConnectionDelegate.在这个类中,我实现了一个名为 appID 的属性.在该类的其中一种方法中,我设置了没有设置器的变量.所以我在一个属性的位置放置了一个自动释放的对象.这个被释放并且指向变量的指针变得无效.一旦 Delegate 被释放,就会向这个尚未释放的对象发送一个方法.
Finally after a few more hours of frustrating experiments I found the solution. The whole thing hadn't to anything with the second target. The Problem was the NSURLConnectionDelegate. In this class I implemented a Property named appID. And in one of the methods of the class, I set the variable without the setter. So I placed an autoreleased object at the position of a property. This one get released and the pointer to the variable gets invalid. As soon as the Delegate was released, a Method was sent to this yet released object.
但是我无法解释为什么会出现这个奇怪的错误方法.我以前从未见过这样的事情.有人能告诉我为什么错误被称为在函数 '@gleLLVMVecPrimMultiRender13' 上运行传递 'X86 DAG->DAG 指令选择'
?
But I can't explain why there appears this strange error Method. I haven't seen anything like that before. Can someone tell my why the error is calledRunning pass 'X86 DAG->DAG Instruction Selection' on function '@gleLLVMVecPrimMultiRender13'
?
桑德罗·迈耶`
这篇关于导致 EXC_BAD_ACCESS (SIGSEGV) 的奇怪错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!