我正在搜索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存档,并且要使用此命令(上述),我在以下路径使用了该存档文件:Contents / Resources / DWARF / myApp
我真的迷路了。任何的想法 ?建议?非常感谢你的帮助。
编辑1:
我已经检查了所有的UIAletView和UIAlertView的委托(delegate):一切正常。
我在Crittercism上看到了崩溃日志(仅iOS 7,iPhone和iPad上有63位用户崩溃了120次)。
我无法复制!我真的不明白
最佳答案
基于上述情况,您可能无法从堆栈跟踪本身获取确切的表 View ,但是Crittercism具有其他功能(例如Breadcrumbs),这些功能可以捕获堆栈之外的跟踪。
我的建议是在TableViewController的viewDidLoad中添加面包屑,并在其中获取/定义表 View 的名称。这样,您就可以遍历面包屑,并且知道导致崩溃的原因是您在此表 View 中。
这应该可以帮助您将来更好地捕获这种情况。
至于这个特定的堆栈跟踪。您可以使用post中描述的技术来帮助您更好地了解objc_msgSend的真实来源。