【问题标题】:The meaning of Xcode hints when crashes occur发生崩溃时 Xcode 提示的含义
【发布时间】:2011-12-08 14:03:28
【问题描述】:

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

[myObject myMethod];

我可以确信应该在 myMethod 函数中搜索该错误吗?或者它可能意味着其他什么?

2.有时这条绿线放在main.m文件中的行

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

您知道在此处放置提示的具体内容是什么吗?什么意思?

3. 有时还会发生最奇怪的事情:Xcode 向我显示了一个包含汇编代码的文件以及该代码中的绿线。为什么?看到这个我应该明白什么?

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

【问题讨论】:

  • 内存泄漏不会导致崩溃,只会浪费应用程序的内存。
  • 好的。那么最常见的崩溃原因是什么?我的意思是当控制台窗口中没有关于错误数组下标或未知选择器的消息时

标签: iphone xcode4 crash


【解决方案1】:

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

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

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

【讨论】:

  • 或者您可以在诊断选项卡中启用僵尸。
【解决方案2】:

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

【讨论】:

    【解决方案3】:

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

    你可以在这里找到一些提示iPhone Xcode debugging

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

    【讨论】:

      猜你喜欢
      • 2016-10-03
      • 1970-01-01
      • 2013-08-19
      • 1970-01-01
      • 1970-01-01
      • 2015-09-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多