当崩溃发生时,Xcode的含义提示

时间:2011-12-08 14:03:29

标签: iphone xcode4 crash

1.当我的应用程序崩溃并且控制台窗口中没有消息时,Xcode在代码编辑器中显示带有签名EXC_BAD_ACCESS或PROGRAM RECEIVED SIGNAL SIGABRT的绿线。问题是:Xcode总是把这条绿线放在放置错误的代码行吗?如果我看到这条绿线放在

[myObject myMethod];

我可以确信应该在myMethod函数中搜索bug吗?或许它可能意味着别的什么?

2.有时,这条绿线会放在<{p>}行的main.m文件中

int retVal = UIApplicationMain(argc, argv, nil, nil);

你知道在那里放置提示的具体内容吗?这是什么意思?

3.有时候最奇怪的事情发生了:Xcode向我展示了一个带有汇编代码的文件和这段代码中的绿线。为什么?当我看到它时,我应该理解什么?

4.如果我反复执行以下操作:进入屏幕,然后执行某些操作,然后退出屏幕 - 我的应用程序崩溃。它可能会在第二次或第七次崩溃。造成这种崩溃的最常见原因是什么?内存泄漏?但Analyze告诉我,我的应用程序中没有泄漏。您认为它可能是什么?

3 个答案:

答案 0 :(得分:1)

您可以检查NSZombies或调试可在错误消息中找到的任何内存引用。

您可以在iPhone Xcode debugging

找到一些提示
  

关于(3)我认为没有办法解释汇编代码。

答案 1 :(得分:1)

第4点的简单答案:访问解除分配/过度释放内存时崩溃的最常见原因。

答案 2 :(得分:1)

正如我在另一篇文章中所说:

在XCode中,转到菜单“编辑方案”,选择正在运行的配置并添加'NSZombieEnabled',如下图所示,当您的应用程序崩溃时,它将为您提供有助于您调试崩溃的其他信息。

enter image description here

请注意,当您的应用程序调试结束时,请删除NSZombieEnabled命令,因为它会影响应用程序性能