【问题标题】:'strdup' leak - unknown reason“strdup”泄漏 - 未知原因
【发布时间】:2012-06-17 02:08:56
【问题描述】:

使用 Instruments 检查我的代码是否有泄漏,我发现了一个我无法找到解决方案的人。是这样的:

Malloc 48 字节 负责库 - libsystem_c.dylib 负责框架 - strdup

我用谷歌搜索了这个,一些建议告诉人们不要这样做,但提交给 Apple 泄露似乎是一件愚蠢的事情,所以我想看看是否有人能告诉我更多关于这个的信息,或者在哪里它可能来自哪里?

【问题讨论】:

  • 我假设你的代码不会直接调用strdup,对吧?
  • 您是否尝试查看整个框架?您应该能够打开右侧的堆栈跟踪抽屉,并让它显示每个泄漏的整个调用堆栈。
  • 这是一个众所周知的 Apple 代码泄漏。这不是你的错。之前的问题:one, two.

标签: iphone objective-c ios instruments strdup


【解决方案1】:

如果你的代码没有直接使用strdup(),那么基本上有两种可能的原因会导致内存泄漏:

  1. Apple 的代码有一个错误:它调用strdup(),但在使用后没有释放它的返回值。
  2. 您使用的调试工具(仪器或由它调用的命令行工具?)错误地检测到内存泄漏。

在这两种情况下,您都可以向 Apple 提交错误报告。

【讨论】:

    猜你喜欢
    • 2016-01-18
    • 2016-06-04
    • 2012-08-14
    • 2017-02-15
    • 1970-01-01
    • 1970-01-01
    • 2011-08-19
    • 1970-01-01
    • 2010-09-22
    相关资源
    最近更新 更多