代码之家  ›  专栏  ›  技术社区  ›  Aleks

在iPad上跟踪exc_bad_访问

  •  0
  • Aleks  · 技术社区  · 14 年前

    我一直在用这个代码创建我的uiwindow

    UIMyWindow* win = [[UIMyWindow alloc] 
                       initWithFrame:[[UIScreen mainScreen] applicationFrame]];
    

    UIMyWindow并不是什么特别的东西,它只有一个指向C++类的指针,它可以实现ObjutVEC的一些包装。

    最近,我的应用程序在添加了一些与错误无关的代码行后开始崩溃。我添加的代码行只是分配一个C++对象,但是程序执行永远不会达到这一行。

    有趣的是,我的代码在发行版中有效。

    我唯一的猜测是我在一个完全不同的地方做了一些记忆腐蚀。我的问题是: 什么类型的内存损坏? 有没有一些好的做法来跟踪他们?

    1 回复  |  直到 14 年前
        1
  •  1
  •   Macmade    14 年前

    您肯定有一条消息发送到一个解除分配的对象。

    您应该尝试使用instruments.app调试程序。它应该显示出潜在的内存问题。

    还可以看看 启用NSZMN 环境变量。基本上,它会在释放对象的位置留下一个虚拟对象。当消息发送到该虚拟对象时,您将收到警报,允许您查看问题所在。

    推荐文章