繁体   English   中英

在iOS上调试EXEC_BAD_ACCESS

[英]Debugging a EXEC_BAD_ACCESS on iOS

我有一个非常奇怪的EXEC_BAD_ACCESS错误,错误发生在应用程序启动时。 没有达到断点或NSLog,当UIApplicationMain(argc,argv,nil,NSStringFromClass([AppDelegate class]))被调用时它会取消。

它只会在模拟器上而不是在设备上或使用仪器时崩溃。 僵尸没有给我任何信息,当我在模拟器上启用GUARDMALLOC它没有崩溃。 EXEC_BAD_ACCESS始终在同一个内存地址上发生。

我可以得到以下回溯

#0  0xcd58a2f6 in ?? ()
#1  0x0102b524 in -[UIWindow _commonInit] ()
#2  0x0102b66f in -[UIWindow initWithFrame:] ()
#3  0x0137be58 in -[UIStatusBarWindow initWithFrame:] ()
#4  0x0103c28f in -[UIView init] ()
#5  0x01000a5e in -[UIApplication _createStatusBarWithRequestedStyle:orientation:hidden:] ()
#6  0x00ffbe6b in -[UIApplication _runWithURL:payload:launchOrientation:statusBarStyle:statusBarHidden:] ()
#7  0x0100d315 in -[UIApplication handleEvent:withNewEvent:] ()
#8  0x0100e24b in -[UIApplication sendEvent:] ()
#9  0x00fffcf8 in _UIApplicationHandleEvent ()
#10 0x02fe7df9 in _PurpleEventCallback ()
#11 0x02fe7ad0 in PurpleEventCallback ()
#12 0x022cabf5 in __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ ()
#13 0x022ca962 in __CFRunLoopDoSource1 ()
#14 0x022fbbb6 in __CFRunLoopRun ()
#15 0x022faf44 in CFRunLoopRunSpecific ()
#16 0x022fae1b in CFRunLoopRunInMode ()
#17 0x00ffb7da in -[UIApplication _run] ()
#18 0x00ffd65c in UIApplicationMain ()
#19 0x00002ea2 in main (argc=1, argv=0xbffff2a0) at /Users/user/Projects/App/App/main.m:16

当我试图得到有关我得到的记忆的信息时

Cannot access memory at address 0xcd58a2f6

我有时可以在更改某些代码时解决它,但是当我只在其他一些函数中创建局部变量时会再次发生这种情况,所以我认为这个问题会更深入。

我有点困惑,因为当错误发生时,didFinishLaunchingWithOptions永远不会到达,所以在我的viewcontrollers中有什么样的影响可以有代码?

作为第三方组件,我使用Phonegap 2.1作为组件,并使用Apple的Reachability。

您可以添加异常断点以获取错误的位置。 这是一个很好的教程链接。 希望对你有效。

链接在这里。

假设它不是xib问题,您可以使用atos(地址到符号)调试来帮助您找到问题的位置。

有关此方法的优秀教程,请访问http://saveme-dot-txt.blogspot.com/2011/04/using-atos-for-reading-crash-logs.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM