0

我在 5 天前搜索有关此崩溃的信息,但我可以找到我的应用程序有时会崩溃的原因。我正在使用 Crittercism 库来记录我的崩溃。dSYM 文件已正确上传到 Crittercism 网站。这里是 Crittercism 的崩溃日志:

 0 libobjc.A.dylib 0x38540626 objc_msgSend + 6
 1 UIKit 0x307baaf7 -[_UIModalItemsCoordinator _notifyDelegateModalItem:tappedButtonAtIndex:] + 95
 2 UIKit 0x307ba96d -[_UIModalItemAlertContentView tableView:didSelectRowAtIndexPath:] + 749
 3 UIKit 0x306c205f -[UITableView _selectRowAtIndexPath:animated:scrollPosition:notifyDelegate:] + 1079
 4 UIKit 0x30774377 -[UITableView _userSelectRowAtPendingSelectionIndexPath:] + 215
 5 UIKit 0x306236f5 _applyBlockToCFArrayCopiedToStack + 317
 6 UIKit 0x3059c55b _afterCACommitHandler + 431
 7 CoreFoundation 0x2dd532a5 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 21
 8 CoreFoundation 0x2dd50c49 __CFRunLoopDoObservers + 285
 9 CoreFoundation 0x2dd50f8b __CFRunLoopRun + 731
 10 CoreFoundation 0x2dcbbf0f CFRunLoopRunSpecific + 523
 11 CoreFoundation 0x2dcbbcf3 CFRunLoopRunInMode + 107
 12 GraphicsServices 0x32bc0663 GSEventRunModal + 139
 13 UIKit 0x3060716d UIApplicationMain + 1137
 14 myApp 0x000c3357 main (main.m:16)
 15 libdyld.dylib 0x38a43ab7 start + 3

问题是:我的应用程序中有很多 UITableView。但我找不到它是哪一个。我必须如何处理才能调试此崩溃?我没有在 Apple Developer Center 上找到一些有用的信息。我尝试使用 atos 命令来符号化文件,但没有有用的信息。这与 Crittercism 网站上的信息完全相同。

这里我使用的命令:(atos -arch armv7 -o myApp进入interactif模式,然后,输入每个内存地址,如:0x307baaf7)我只有myApp.app.dSYM存档,并且要使用这个命令(上图),我使用了路径下的存档文件: 内容/资源/DWARF/myApp

我真的迷路了。任何想法 ?建议?非常感谢你的帮助。

编辑1:

我检查了我所有的 UIAletView 和 UIAlertView 的委托:一切正常。

我在 Crittercism 上看到了崩溃日志(仅 iOS 7、iPhone 和 iPad 上的 63 位用户大约有 120 次崩溃)。我无法复制它!我真的不明白。

4

2 回答 2

1

第 14 帧已经显示了正确的符号,即 main.m 第 16 行。像您一样使用带有堆栈帧中所写地址的 atos 是错误的,请参阅此 stackoverflow 说明。因此,崩溃报告不可能告诉您哪个表视图导致了这样的内存问题。

基于上述内容,您可能无法从堆栈跟踪本身获得确切的表格视图,但使用Crittercism有额外的功能(例如Breadcrumbs)允许捕获堆栈之外的跟踪。

我的建议是在 TableViewController 的 viewDidLoad 中添加面包屑,并在那里获取/定义表视图的名称。这样,您可以逐步浏览面包屑并知道导致崩溃的原因是您在此 tableview 中。

这应该有助于您在未来更好地捕捉这种情况。

至于这个特定的堆栈跟踪。您可以使用本文中描述的技术帮助您更好地了解 objc_msgSend 的真正来源。

于 2014-06-20T20:27:54.920 回答
0

* 请参阅下方评论中 Kerni 的回复*

于 2014-06-20T07:54:06.573 回答