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

使用libmallocdebug调试内存泄漏

  •  2
  • Thomi  · 技术社区  · 16 年前

    我想使用mallocdebug应用程序在我的应用程序中查找一些内存泄漏。我在运行Mac OS X 10.6.2。每当我尝试并遵循 this guide ,我得到以下错误:

    dyld: could not load inserted library: /usr/lib/libMallocDebug.A.dylib
    
    Trace/BPT trap
    

    我已经验证了.dylib文件是否存在,并且无论我尝试运行哪个应用程序,我都会得到相同的错误(不限于我的应用程序)。 Several others reported this problem 但到目前为止还没有人找到解决办法。

    有什么想法吗?

    1 回复  |  直到 16 年前
        1
  •  4
  •   Nicholas Riley    16 年前

    libmallocdebug不可用于64位可执行文件。

    % lipo -info /usr/lib/libMallocDebug.A.dylib    
    Architectures in the fat file: /usr/lib/libMallocDebug.A.dylib are: i386 ppc7400 
    

    在10.6中,它确实可以与32位可执行文件一起使用,但是,例如:

    % lipo -thin i386 /bin/ls -out foo
    % DYLD_INSERT_LIBRARIES=/usr/lib/libMallocDebug.A.dylib ./foo        
    libMallocDebug[foo-9141]: initializing libMallocDebug on thread 903
    [...]
    

    我不确定这是一个疏忽还是从未移植到64位运行时。你可以试着提交一个bug。

    更新: 似乎现在常规malloc中有更多的调试功能。 This 讨论很好。