苹果手机
我在随机位置获得EXC_BAD_ACCESS。 已经尝试使用NSZombieEnabled = YES,但没有什么不同。 我正在使用xcode 4.已经尝试:启用Scribble,启用防护边缘,启用Guard Malloc(仅适用于模拟器,非常慢!),内存记录等等。没有运气。
任何人都可以为我提供另一种尝试找到缺陷的方法吗? 我没有选择。
提前致谢,
内部:( void)applicationDidFinishLaunching:(UIApplication *)应用程序
我创建了一个Timer:ASMInterrupt = [NSTimer scheduledTimerWithTimeInterval:1 / 60.0 target:self selector:@selector(interrupiSSao :) userInfo:nil repeatats:YES];
和一个新的线程:[NSThread detachNewThreadSelector:@selector(myBackgroundMethod:)toTarget:self withObject:nil];
计时器将处于循环状态,直到myBackgroundMethod正在运行。
在myBackgroundMethod中我使用:
//Beginning of the function
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
EAGLContext *context = [[EAGLContext alloc] initWithAPI: kEAGLRenderingAPIOpenGLES1 sharegroup: [[glView context] sharegroup]];
[EAGLContext setCurrentContext:context];
... //几个纹理/声音/音乐加载,如下所示:
NSBundle *bundle = [NSBundle mainBundle];
sndMove = [[SoundFx alloc] initWithSound:[bundle pathForResource:@"tetMov" ofType:@"wav"]];
txParallax[0] = [[Texture2D alloc] initWithImageFile:@"parallax_tst" ofType : @"png" inMode:TEX_RGBA];
NSString * tmpSom = [[NSBundle mainBundle] pathForResource:@“ThorTitle”ofType:@“mp3”]; musMenu = [[[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:tmpSom] error:NULL] retain];
...
//and at the end:
[EAGLContext setCurrentContext:nil];
[context release];
[pool release];
这只发生在应用程序的开始。 错误总是发生在:1)长时间播放2)游戏结束后,新游戏3)游戏结束
所以,它可能不直接与该线程相关。 我试图寻找autorelease问题,但是一切都是用initWith分配的
尝试使用静态分析器(Xcode 4中的Cmd-Shift-B,Xcode 3中的Cmd-Shift-A)。 如果你有一个过度释放的对象或一个免费的,它会报告它。
仪器中的记忆分配仪器一定要去。 当你崩溃时,你应该能够看到该地址的历史分配和免费事件,包括Objective-c引用计数事件。
显然我正在访问一个数组:
int xpto [10] [10];
xpto [10] [5] = 2; ... if(xpto [-1] [8]!= ...
调试器给我一些关于它的更好的信息有多难。 这就是为什么我迫不及待地拿起诺基亚WinMo 7手机。 视觉工作室!!!
链接地址: http://www.djcxy.com/p/63253.html上一篇: iphone