【问题标题】:"no ivar" on Xcode Instruments Leaks Cycles graphXcode Instruments Leaks Cycles 图上的“no ivar”
【发布时间】:2012-09-08 19:09:38
【问题描述】:

我正在使用仪器检查我的应用程序是否存在泄漏,并且我正在尝试学习如何读取泄漏周期数据。 我在我的一个泄漏点上得到了这张图:

如果图表是什么意思? “没有 ivar”是什么意思?

【问题讨论】:

    标签: ios memory-leaks instruments


    【解决方案1】:

    “no ivar”消息类似于查看已剥离其符号的程序的调用堆栈。如果您查看调用堆栈,您会看到内存地址而不是函数名。在您的示例中,仪器显示地址 +16 和 +24。 Instruments 找不到分配内存的变量名,因此您会收到 [no ivar] 消息。

    我没有办法让 Instruments 提供更好的信息。我从来没有让 Instruments 对泄漏周期做很多事情。

    更新

    如果您要查找代码泄漏内存的位置,我建议您切换到调用树视图,您可以从跳转栏中执行此操作。选择 Invert Call Tree 和 Hide System Libraries 复选框可以更轻松地在调用树视图中定位您的代码。复选框位于跟踪文档窗口的左侧。

    【讨论】:

    • 谢谢,我会尝试以其他方式找到它
    • 我也遇到了同样的情况,奇怪的是,调用树部分什么都没有
    • 您是否需要做一些特别的事情才能看到图表视图?我在左侧看不到扩展三角形,并且图表列是空白的。
    • @chrisco 您的应用必须有一个泄漏周期才能有一个图表列和问题屏幕截图中显示的扩展三角形。如果有内存泄漏但没有泄漏循环,则不会有扩展三角形和图形。
    • 嗯。我想知道是否足以说它不会从闭包中捕获泄漏周期。希望这只是正在进行的工作。作为记录,我确实在闭包中使用 self 有泄漏周期,但我试图弄清楚如何使用 Instruments 找到它。
    猜你喜欢
    • 2011-06-08
    • 2018-09-18
    • 2013-01-26
    • 2010-10-18
    • 2010-09-27
    • 2011-12-27
    • 2012-02-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多