`
shappy1978
  • 浏览: 675983 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

记一次诡异的崩溃事件

阅读更多

下午临到一个演示的时候碰到一个诡异的程序崩溃事件,还好很快解决,不过也确实被吓到了。代码类似下面

 

xxx
if(xxx)
   line 1;
else
   lines 2;

 debug的时候,根据判断条件执行line1,然后继续,直到结束,突然跳回lines 2再次执行,报一个Access错误,程序崩溃。clean,重启XCode,相当诡异的是,结果都是一致的在lines 2上面崩溃。最终发现问题是出在前面有一段字符串语句

 

NSString *tmp=[json valueforkey:xxx];

 上面正确的做法是NSString *tmp=[[NSString alloc] initwithString:[json valueforkey:xxx]];,由于没有采用alloc做内存复制,正常来说应该是报一个double release的错误,不知道为何却会导致系统在退出函数前掉头执行lines 2,导致一个相当难检查的错误。严格来说这应该是XCode的bug,虽然是用户误操作导致的。

//***************************************************

最近这种debug时光标乱跳的情况发生比较频繁,一方面估计是刚好某些代码写的不规范,不过也反应出XCode还不是很成熟,这种情况太无厘头啦,只好细细梳理最近修改过的代码。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics