当我在设备上运行我的应用程序时,调试器告诉我这个:
Program received signal: “EXC_BAD_ACCESS”.
mi_cmd_stack_list_frames: Not enough frames in stack.
mi_cmd_stack_list_frames: Not enough frames in stack.
我没有获得有关代码发生位置的信息。这就是我得到的全部。知道那可能是什么意思吗?
此后应用程序崩溃了。当设备未连接到mac时,它仍然会崩溃,因此不会出现调试器问题。
答案 0 :(得分:9)
在4.0 sdk上构建3.1.3手机导致了这一点。
通过弱目标中的UIKit进行修复。
答案 1 :(得分:2)
当消息发送到已释放的对象时,会发生EXC_BAD_ACCESS。
在尝试发布已经发布的内容之前,我看过“mi_cmd_stack_list_frames:堆栈中的帧数不够”。
我的建议是设置NSZombieEnabled环境变量并查看您尝试访问的已释放对象。
这个网站有一个很棒的教程: http://www.codza.com/how-to-debug-exc_bad_access-on-iphone
答案 2 :(得分:1)
我看到这至少是由三种不同的问题引起的:
•如其他答案中所述,过度发布错误可以做到这一点。
•当我升级应用程序以使用iAd和IOS 4.0时,我发生了这种情况。我认为问题是我试图在3.0版本的应用程序中使用iAd框架,这当然是不可能的,因为iAd只是在4.0及以上版本。
•当我从一个应用程序中删除了一堆东西并重新编译时,我发生了这种情况,但旧的东西的痕迹仍在模拟器上。重置模拟器清除了问题。我要删除的是Flurry API。我恐怕不知道是什么,特别是在那里,并导致了问题。
答案 3 :(得分:1)
我有同样的问题。 我的解决方案是: 退出Xcode,等待一段时间后再重启。
答案 4 :(得分:0)
我试图在iOS 3.1.2下使用类似字符串在iPhone上启动应用程序时收到此消息
Class messageClass = (NSClassFromString(@"MFMessageComposeViewController"));
同时使用iOS 4设备时效果很好。
所以我可以假设,如果有任何引用仅限iOS4的类,那么当开始在设备上运行时应用程序可能会崩溃。
答案 5 :(得分:0)
创建一个新项目并复制其中的所有现有文件为我解决了这个问题。