我在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
(进入交互模式,然后输入每个内存地址,如:0x307baaf7)我只有myApp.app.dSYM存档,并且要使用这个命令(上面),我使用了存档的文件path:Contents / Resources / DWARF / myApp
我真的迷路了 . 任何的想法 ?建议?非常感谢你的帮助 .
EDIT 1:
我已经检查了所有UIAletView和UIAlertView的委托:一切都好 .
我看到了Crittercism的崩溃日志(仅限iOS 7上的63个用户,iPhone和iPad大约120次崩溃) . 我无法复制它!我真的不明白 .
2 回答
基于上述情况,您可能无法从堆栈跟踪本身获取确切的表视图,但是使用Crittercism还有其他功能(例如Breadcrumbs)可以捕获超出堆栈的路径 .
我的建议是在TableViewController的viewDidLoad中添加一个breadcrumb,并在那里获取/定义表视图的名称 . 这样你就可以逐步完成面包屑并知道导致你在这个桌面视图中出现的崩溃 .
这应该有助于您将来更好地捕获此场景 .
至于这个特定的堆栈跟踪 . 您可以使用此post中描述的技术来帮助您更好地理解objc_msgSend的真正起源 .
*** See the Kerni's response below in the comments ***