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

奇怪的内存管理问题

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

    我无法识别正在解除分配的对象,我使用命令+y运行我的应用程序,但尽管mallocstacklogging设置为yes,nszombieenabled设置为yes,但当我在我的应用程序中单击exc_bad_access时,gdb不会打印解除分配对象的内存地址。有什么想法吗?

    抱歉,如果这看起来模糊,它看起来像是核心数据相关,如果有人能提供有见地的输出分析,我非常感谢。谢谢

    下面是崩溃时的堆栈跟踪:

    #0  0x933b4edb in objc_msgSend
    #1  0x08c46040 in ??
    #2  0x01f3c6c9 in __CFSetDeallocate
    #3  0x01f23a41 in _CFRelease
    #4  0x01dd9977 in -[_NSFaultingMutableSet dealloc]
    #5  0x01dcb892 in -[NSManagedObject(_NSInternalMethods) _clearRawPropertiesWithHint:]
    #6  0x01dcb5ed in -[NSFaultHandler turnObject:intoFaultWithContext:]
    #7  0x01dccd8c in -[NSManagedObject dealloc]
    #8  0x01db0315 in -[_PFManagedObjectReferenceQueue _processReferenceQueue:]
    #9  0x01ddd9ba in _performRunLoopAction
    #10 0x01f65252 in __CFRunLoopDoObservers
    #11 0x01f6465f in CFRunLoopRunSpecific
    #12 0x01f63c48 in CFRunLoopRunInMode
    #13 0x0268b615 in GSEventRunModal
    #14 0x0268b6da in GSEventRun
    #15 0x002a7faf in UIApplicationMain
    #16 0x00002b60 in main at main.m:13
    
    1 回复  |  直到 14 年前
        1
  •  3
  •   indragie    14 年前

    运行clang静态分析器(xcode build menu>>build and analyze)并检查它是否发现任何问题。

    昨天我在我的一个应用程序中遇到了“exc_bad_access”问题,我启用了nszombie,但它没有打印消息,所以我被难住了,但是静态分析器发现了一个问题,我正在释放一个从未被保留的对象,并修复它解决了我的问题。