仅在发布配置中第二次执行后应用程序才会崩溃

Posted

技术标签:

【中文标题】仅在发布配置中第二次执行后应用程序才会崩溃【英文标题】:App crashes only after second execution only in Release configuration 【发布时间】:2010-05-31 21:46:17 【问题描述】:

我知道这可能不是一个容易回答的问题,因为我很难描述它。 我有一个应用程序在调试配置中(也多次)在设备上运行没有问题。

一旦我将它放入发布配置(在发布之前我需要它?),应用程序就会毫无问题地启动,我可以进入下一页,在那里我会显示一个 core-plot 图表。但只有当我从 xcode 运行它时。一旦我结束应用程序并重新启动它,它就会毫无问题地打开,但在下一页上,它会崩溃。现在除了崩溃报告,我没有其他要调试的东西了:

  Exception Type:  EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0xcf10000a
Crashed Thread:  0

Thread 0 Crashed:
0   libobjc.A.dylib                 0x000026f2 objc_msgSend + 14
1   StandbyCheck                    0x0001fbea -[CPXYTheme newGraph] (CPXYTheme.m:36)
2   StandbyCheck                    0x00007c06 -[SCGraphCell initWithStyle:reuseIdentifier:] (SCGraphCell.m:28)
3   StandbyCheck                    0x00076b4a -[TTTableViewDataSource tableView:cellForRowAtIndexPath:] (TTTableViewDataSource.m:128)
4   UIKit                           0x0007797a -[UITableView(UITableViewInternal) _createPreparedCellForGlobalRow:withIndexPath:] + 514
5   UIKit                           0x000776b0 -[UITableView(UITableViewInternal) _createPreparedCellForGlobalRow:] + 28
6   UIKit                           0x00037e78 -[UITableView(_UITableViewPrivate) _updateVisibleCellsNow] + 940
7   UIKit                           0x000367d4 -[UITableView layoutSubviews] + 176
8   StandbyCheck                    0x000734b8 -[TTTableView layoutSubviews] (TTTableView.m:226)

[...]

现在,有人可以指出任何方向吗?调试/发布模式有什么区别?我怎么可能调试这个故障?

我已经找了好几个小时了,请帮帮我:( 谢谢, 丹尼斯

【问题讨论】:

【参考方案1】:

据我所知,CPXYTheme.m 的那一行中没有任何内容会导致崩溃。特别是因为它是对self 的调用,其参数是在发生崩溃的方法中构造的。好的,这就留下了并发问题的明显可能性——特别是当崩溃只发生在某些配置中而不是一直发生时。你在其他线程上做什么可能会影响你的 CPXYTheme 对象、SCGraphCell 或“拥有”它们的任何对象(表视图数据源、视图控制器等)的生命周期?

【讨论】:

以上是关于仅在发布配置中第二次执行后应用程序才会崩溃的主要内容,如果未能解决你的问题,请参考以下文章

Redshift JDBC 连接在 R 中第二次打开时崩溃

日历验证错误仅在第二次通过 Jquery UI 选择日期后才消失

第二次点击后出现文本字段的键盘(不时)

NSConstraints 在第二次加载 UIView 后崩溃应用程序

UseState 仅在第二次单击时显示

地理编码方法未在 for 循环中第二次执行