1

所以,这有点莫名其妙,我不知道该怎么办。我的应用程序在使用几分钟后随机崩溃,总是在相同的操作上(相同的模式视图被关闭)。崩溃并不总是发生,但它会发生在模拟器和真实设备上。

我试图:

  • 确保我处于调试模式(当然,但什么也没发生)
  • 启用保护 malloc(无)
  • 在仪器内部运行(无)
  • 直接从终端运行 iPhone 模拟器,然后将 LLDB 附加到应用程序(只不过是代码 0的经典退出)
  • 添加异常断点(没什么意义)

我尝试的最后一件事是在exit函数上添加断点。应用程序停止,但我也没有有意义的堆栈跟踪(见下文)。

退出时的堆栈跟踪

另外,我正在用 Lua 做一些非常简单的东西,所以它可能是相关的。Mac OSX 日志在这里显示了这条奇怪的行:

5/15/12 2:16:57.190 PM com.apple.debugserver-170.1: 1 +0.000000 sec [233b/1a03]: error: ::read ( 1, 0x10af80a60, 1024 ) => -1 err = Bad file descriptor (0x00000009)

如果您对如何获得更有意义的堆栈跟踪有任何想法,例如至少获得库/模块/文件/负责exit调用的任何内容,这将有很大帮助!

4

3 回答 3

0

这有点猜测,但是您的目标的其他链接器标志中有 -weak_library /usr/lib/libSystem.B.dylib 吗?这至少会在模拟器上的各个地方导致奇怪的崩溃——cordova/phonegap 生成的应用程序包括这个标志,一些版本的 flurry 和 urbanairship 也使用它。

如果将 -weak_library /usr/lib/libSystem.B.dylib 替换为 -weak-lSystem /usr/lib/libSystem.B.dylib 并且崩溃消失。

于 2012-05-15T12:48:33.070 回答
0

转到断点导航器(快捷键:cmd + 6),在左下角你会看到一个小 + 图标。单击它并选择“添加异常断点”。希望这可以帮助。

于 2012-05-15T12:45:41.177 回答
0

您可能认为这很痛苦,但也许您可以尝试将 NSLog 语句放入所有方法中?

顺便说一句,尝试将您的模态解雇延迟一两秒,以消除这是问题的一个指标。

你的应用程序还在做什么?

于 2012-05-15T14:58:30.167 回答