2009-12-02 48 views
3

我在模拟器中遇到问题。仿真器偶尔会停止运行程序收到信号EXC BAD ACCESS

编程接收信号:“EXC_BAD_ACCESS”。

作为控制台输出。没有提供更多信息。是否有机会接近这个问题?

+0

您是否尝试在调试器中运行它? – 2009-12-02 17:31:03

+0

是的,无法捕捉它... – neil 2009-12-03 21:11:32

回答

0

这通常是由向不再存在于内存中的对象发送消息引起的。没有错误消息,因为发生错误时堆栈上没有任何内容。您可以设置断点并逐步执行应用程序,直到找到发生崩溃的位置,或者您可以使用nszombie。

http://howtomakeiphoneapps.com/2009/02/nszombie-and-xcode-oh-my/

+1

它不是通过向内存中的对象发送消息而引起的,它是由尝试访问您无法访问的内存引起的。解引用NULL指针会给你同样的错误。 – dreamlax 2011-12-20 02:59:00

+0

也许它应该说“经常引起” – nielsbot 2014-02-02 20:28:28

3

我看到NSZombie已经被提出,但链接似乎没有工作了,所以这里是如何使用它的说明。

要激活NSZombie做到以下几点:

  1. 获取可执行的信息。
  2. 转到参数选项卡。
  3. 在“变量在环境中进行设置:”部分添加:

名称:NSZombieEnabled 值:是

然后运行你的应用程序像往常一样,当它崩溃,它会告诉你哪个释放对象收到释放消息。