我尝试过
(1)清理构建文件夹,
(2)从模拟器和我的 iphone 中删除应用程序,
(3)重新启动,
(4)并启用 NSZombieEnabled 但它似乎没有做任何事情。
(5)使用调试器lldb和gdb
(6)和gaurd malloc
我有 xcode 4.3.2。这个错误发生在模拟器和我的 iPhone 上。(在它说的模拟器和它说EXC_BAD_INSTRUCTION code=i386 subcode=0x0
的设备上EXC_BREAKPOINT (SIGTRAP)
。
这是两个崩溃日志:
在日志中打印:
Trace/BPT trap: 5
Segmentation fault: 11
正如您在崩溃中看到的那样,我的任何 ViewController 都没有回溯。在询问(链接)之前我做了很多谷歌搜索,但是很多其他人(链接)有这个错误可以追溯到他们的应用程序。这个应用程序的常见原因是什么,我应该从哪里开始寻找错误?我不能做任何事情来重现,只需运行我的一段代码 10 次,它至少会崩溃一次。谢谢!
编辑:继承人一些代码
outputPipe = [[NSPipe alloc] init];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(getDataOut:) name:NSFileHandleReadToEndOfFileCompletionNotification object:[outputPipe fileHandleForReading]];
[[NSNotificationCenter defaultCenter] removeObserver:self name:NSFileHandleReadToEndOfFileCompletionNotification object:[outputPipe fileHandleForReading]];
我稍后会在我的代码中发布 outputPipe。
编辑 2:更改 [NSPipe 管道];到 [[NSPipe alloc] 初始化];没有修复它。
在观察者之间切换的代码:
buttondone.title=@"Done";
//dlog(@"last output notification inbound");
stdoutisdone=YES;
[[NSNotificationCenter defaultCenter] removeObserver:self name:NSFileHandleReadCompletionNotification object:[outputPipe fileHandleForReading]];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(getDataOut:) name:NSFileHandleReadToEndOfFileCompletionNotification object:[outputPipe fileHandleForReading]];
[[outputPipe fileHandleForReading] readToEndOfFileInBackgroundAndNotify];