在我的可可应用程序的加载过程中,我的程序因为消息EXC_BAD_ACCESS而崩溃。堆栈跟踪没有帮助。任何线索我怎么能找到问题?为什么我的可可程序在启动过程中获得EXC_BAD_ACCESS?
3
A
回答
5
我见过多次在那里,当你试图访问一个对象,你没有保留适当所以它要么不指向你的对象或其指向的有效副本会发生这种情况另一种类型的对象早期放置断点并分析对象的步骤通过启动使用po和打印在gdb中是最好的选择
-3
这是一个可能的原因。有一个IBOutlet对象没有被初始化,并且在nil上调用了一条消息。堆栈跟踪可能是这样的:
#0 0x90a594c7 in objc_msgSend
#1 0xbffff7b8 in ??
#2 0x932899d8 in loadNib
#3 0x932893d9 in +[NSBundle(NSNibLoading) _loadNibFile:nameTable:withZone:ownerBundle:]
#4 0x9328903a in +[NSBundle(NSNibLoading) loadNibFile:externalNameTable:withZone:]
#5 0x93288f7c in +[NSBundle(NSNibLoading) loadNibNamed:owner:]
#6 0x93288cc3 in NSApplicationMain
#7 0x00009f80 in main at main.mm:17
由于堆栈跟踪是没有帮助的,你将不得不步代码中查找错误。如果由于某种原因,您无法在执行早期设置断点,请尝试插入一些Debugger();调用将打破调试器。
0
补充:最重要的原因解除封存失败是忘记“回归自我”;来自自定义类的-init。它伤害了很多:(
0
检查控制台日志(Applications/Utilities/Console.app)当程序崩溃时启动,并有一些错误的初始化,就经常写一些有用的错误信息出现,它崩溃之前。
2
这通常表示内存管理错误。
确保所有出口报关单遵循最佳实践:
@interface MyClass : MySuperclass {
UIClass *myOutlet;
}
@property (nonatomic, retain) IBOutlet UIClass *myOutlet;
@end
这种格式可以确保您有任何超在任何平台上获得的内存管理权。
检查任何awakeFromNib
方法,以确保您不要过度释放对象等
1
一个新的答案,一个古老的线程... XCode中4诊断EXC_BAD_ACCESS例外的最有效的方法是使用仪器分析您的应用程序(从XCode单击产品/配置文件并选择僵尸)。这将帮助您识别发送到释放对象的消息。
相关问题
- 1. 获得EXC_BAD_ACCESS我不知道为什么
- 2. 为什么程序在启动过程中滞后和冻结?
- 3. 为什么我会在NSTimer选择器中获得EXC_BAD_ACCESS?
- 4. 我可以在Windows XP中作为服务启动程序吗?
- 5. 为什么我在本程序中获得空指针异常?
- 6. 为什么我们在应用程序中获得两次currentsession?
- 7. 这个过程为什么不启动?
- 8. 我如何在我的应用程序中获得许可?
- 9. 为什么Windows 10在我的程序中启动额外的线程?
- 10. 子过程无法捕获STDOUT - 程序可能会做什么?
- 11. 为什么我的程序在启动时崩溃?
- 12. 为什么onResume在启动时崩溃我的应用程序?
- 13. 为什么我的程序在启动之前崩溃?
- 14. 为什么在通过int投射后获得EXC_BAD_ACCESS?
- 15. 为什么我不能启动线程
- 16. 为什么我无法从shell启动我的应用程序?
- 17. 如何获得启动我的应用程序的流程?
- 18. 为什么我从存储过程中获得-1?
- 19. 为什么我会得到EXC_BAD_ACCESS?
- 20. 为什么在Linux驱动程序中使用udelay()不可靠?
- 21. 为什么我得到DeadlineExceededException:在我的web应用程序中?
- 22. 为什么我的活动在Android“所有应用程序”中都不可见
- 23. 为什么我的程序在objc_msgSend()期间在_class_isInitialized()中接收到EXC_BAD_ACCESS?
- 24. 为什么PM2重新启动我的过程?
- 25. 我可以从我的应用程序中启动android应用程序吗?
- 26. 为什么我不能在我的WinCE应用程序中获得std :: bad_alloc?
- 27. 为什么我在mongodb中获得了可读写性能?
- 28. 为什么获得Hadoop启动SafemodeException
- 29. 什么是ASP.NET应用程序的启动过程步骤?
- 30. 我可以使用install4j启动程序重新启动Java应用程序吗?
消息到零在Objective-C中不是错误。 – mmalc 2008-10-16 15:14:35