What does that mean? “mi_cmd_stack_list_frames: Not enough frames in stack.”

耗尽温柔 提交于 2019-12-12 09:36:32

问题


Debugger is telling me this, when I run my app on device:

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.

I don't get information about where in code that happens. That's all I get. Any idea what that could mean?

The app crashes after that. When the device is not connected to the mac, it still crashes, so not a debugger problem.


回答1:


Building on the 4.0 sdk onto a 3.1.3 phone caused this for me.

Fixed by weak linking UIKit in the target.




回答2:


EXC_BAD_ACCESS happens when a message is sent to an object that has already been released.

I've seen "mi_cmd_stack_list_frames: Not enough frames in stack" before when trying to release something that's already been released as well.

My suggestion is to set the NSZombieEnabled environment variable and see which released object you are trying to access.

This site has a great tutorial on it: http://www.codza.com/how-to-debug-exc_bad_access-on-iphone




回答3:


I've seen this caused by at least three different kinds of problems:

• As described in the other answer, overrelease errors can do it.

• I had it happen when I was upgrading an app to use iAd and IOS 4.0. I think the problem was that I tried to use the iAd framework in the 3.0 version of the app as well, which of course isn't possible because iAd is only around in 4.0 and above.

• I had it happen when I removed a bunch of stuff from an app and recompiled, but vestiges of the old stuff were still around on the simulator. Resetting the simulator cleared the problem. What I was removing was the Flurry API. I'm afraid I don't know what, specifically, in there stuck around and caused the problem.




回答4:


I have the same issue. My solution is:Quit the Xcode and then restart it after waiting some time.




回答5:


I've got such a message when was trying to launch an app on iPhone under iOS 3.1.2 with a string like that

Class messageClass = (NSClassFromString(@"MFMessageComposeViewController"));

At the same time that works well when I use a device with iOS 4.
So I can assume that app could crash when start running on device if there are any references to iOS4-only classes.




回答6:


Creating a new project and copying all the existing files in it solved this problem for me.



来源:https://stackoverflow.com/questions/1372117/what-does-that-mean-mi-cmd-stack-list-frames-not-enough-frames-in-stack

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!