Instruments Leaks - 不显示我的源代码

Posted

技术标签:

【中文标题】Instruments Leaks - 不显示我的源代码【英文标题】:Instruments Leaks - Not showing my source code 【发布时间】:2010-10-18 04:54:17 【问题描述】:

我正在尝试使用 Leaks 应用程序分析 iPhone 应用程序,并且一切似乎都运行良好,但当我尝试查看有关特定内存泄漏的详细信息时除外。泄漏似乎没有加载我的源代码。查看右侧的堆栈视图,我可以看到引用 iPhone 框架的调用,但引用我编写的源代码的任何内容都是空的。下面的截图说明了我的观点。浅蓝色的块应该引用我的源代码。有没有人遇到过这个问题?泄漏只是没有正确找到我的源代码/符号吗?谢谢!

编辑:我正在使用带有调试配置的“设备 - iPhone OS 2.2”编译应用程序。我通过在 Xcode 中选择 Run->Start With Performance Tool->Leaks 来启动 Leaks。如何为 Leaks 提供“使符号文件可用”?

(来源:andrewgarrison.com)

【问题讨论】:

【参考方案1】:

我有带有 Xcode 4.5.2 - Instruments 4.5 的 Snow Leopard 一旦我将默认调试位置设置为 Legacy,它就开始显示

转到文件---->项目设置---->高级---选择旧版

【讨论】:

【参考方案2】:

我遇到了同样的问题。原来我已将构建目录设置为 /tmp/xcode。将其更改回默认值可以解决问题。这是 Xcode 3.2.3 的版本。

【讨论】:

【参考方案3】:

项目 > 编辑项目设置

选择调试目标

点击构建标签

确保未选中Strip Linked Product

【讨论】:

【参考方案4】:

对于ios 4.0及更高版本,修复符号并将那些无用的内存地址变成漂亮的文件名、函数名和行号的方法如下:

    在 Xcode 中,转到 Run -> Run with Performance Tool 并选择您的仪器 加载仪器后,点击停止按钮停止录制。转到文件 -> 重新符号化文档。 在新窗口中,单击路径并单击加号 (+) 按钮以添加新路径。导航到包含项目文件的文件夹,然后单击打开。点击符号化。 利润!

在我最终找到解决方案之前,我一直在寻找这个好一个月。我希望这对你们中的一些人有所帮助!

【讨论】:

感谢您的回答,我无法得到任何其他类似问题的建议。这非常有效。 这对我有用 - 与其他人一样,我无法获得任何其他工作答案【参考方案5】:

如果您的构建目标目录以“.”开头(例如,我使用的是“.xcode-build”)然后找不到 .dsym 文件。就我而言,将构建目录更改为“xcode-build”解决了问题,现在我的应用程序的所有符号都显示在堆栈跟踪中!

【讨论】:

【参考方案6】:

我看到了这种情况,但配置不同。在 Snow Leopard 10.6.1、Xcode 3.2、Instruments 2.0 中,在模拟器中运行 iPhone OS 3.0 时,我没有在 Leaks 中看到任何符号。在 Apple 的 iPhone 开发者论坛中搜索显示,这是 iPhone 3.0 SDK(正在处理)的一个已知问题,将活动 SDK 切换到 3.1 是一种解决方法。果然,它对我有用!

【讨论】:

我遇到了同样的问题,同样将活动 SDK 切换到 iPhone 3.1 也对我有用。谢谢!【参考方案7】:

从您的启动磁盘中删除所有非 ASCII 字符 和主机名(请参阅系统偏好设置中的共享面板) 并重新启动。

哒哒!

【讨论】:

这行得通吗?我的启动盘和主机名都是只有 ASCII 字符的单个单词 - 但我也看不到符号。 这帮助我处理了 2.x 风格的崩溃日志。对于 3.0 风格,我必须学习一些 perl 并修复符号化脚本。现在可能有一个确定的版本。 “修复符号化脚本”是什么意思?我被困在同一个问题上,而在任何一个地方都没有非 ascii 字符。在我的雪豹“升级”之前,我使用的仪器一直为我工作。 将符号添加到堆栈跟踪的脚本称为“symbolicatecrash”。这是我见过的最不健壮的代码之一。它使用聚光灯 [fail to] 找到您的 .dSYM,忽略应用程序目录中的那个,当前目录等。当我修复我的版本时,它错误地引用了 shell 字符(这是在非 ascii 工作之后)。如果你对 perl 感到满意,你可以调试它,或者只是 google symbolicatecrash+snowleopard。也许有人把它修好了。【参考方案8】:

您是否在调试模式下编译并使符号文件可用?

【讨论】:

以上是关于Instruments Leaks - 不显示我的源代码的主要内容,如果未能解决你的问题,请参考以下文章

Instruments->Leaks 中的信息按钮和百分比含义

iOS 内存泄漏检测 Instruments Leaks

iOS 内存泄漏检测 Instruments Leaks

iOS 内存泄漏检测 Instruments Leaks

UITableViewCell 强引用周期,但未被 Instruments 中的 Leaks 拾取

Instruments之Leaks学习