14

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

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

替代文字
(来源:andrewgarrison.com

4

8 回答 8

13

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

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

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

于 2010-11-29T21:29:23.210 回答
8

我看到了这种情况,但是在不同的配置上。在 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 是一种解决方法。果然,它对我有用!

于 2009-09-22T00:40:57.580 回答
2

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

达达!

于 2009-05-13T23:13:46.440 回答
2

项目>编辑项目设置

选择调试目标

单击构建选项卡

确保未选中剥离链接产品

于 2011-01-13T02:53:25.440 回答
1

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

于 2009-04-08T00:26:45.570 回答
1

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

于 2010-01-14T02:48:58.333 回答
1

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

于 2010-09-03T14:20:25.220 回答
0

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

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

调试位置 --- 旧版设置

于 2013-01-03T07:11:14.240 回答