仅在发布配置中第二次执行后应用程序才会崩溃
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
或“拥有”它们的任何对象(表视图数据源、视图控制器等)的生命周期?
【讨论】:
以上是关于仅在发布配置中第二次执行后应用程序才会崩溃的主要内容,如果未能解决你的问题,请参考以下文章
日历验证错误仅在第二次通过 Jquery UI 选择日期后才消失