我正在尝试使用Leaks应用程序分析iPhone应用程序,除了当我尝试查看有关特定内存泄漏的详细信息时,一切似乎都正常工作。泄漏似乎没有加载我的源代码。查看右侧的堆栈视图,我可以看到引用iPhone框架的调用,但引用我编写的源代码的任何内容都是空的。下面的截图说明了我的观点。浅蓝色的块应该引用我的源代码。有没有人遇到过这个问题? Leaks是不是没有正确找到我的源代码/符号?谢谢!
编辑:我正在使用带有Debug配置的'Device - iPhone OS 2.2'编译应用程序。我通过在Xcode中选择Run-> Start With Performance Tool-> Leaks来启动Leaks。如何为Leaks提供“使符号文件可用”?
(来源:andrewgarrison.com)
答案 0 :(得分:13)
对于iOS 4.0及更高版本,修复符号并将这些无用的内存地址转换为漂亮的文件名,函数名和行号的方法如下:
在我终于找到解决方案之前,我正在寻找这个好月份。我希望这有助于你们中的一些人!
答案 1 :(得分: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是一种解决方法。果然,它对我有用!
答案 2 :(得分:2)
从您的启动盘中删除所有非ascii字符
和主机名(请参阅系统偏好设置中的共享面板)
并重新启动。
Ta da!
答案 3 :(得分:2)
项目> 修改项目设置
选择调试目标
点击构建标签
确保取消选中剥离链接产品
答案 4 :(得分:1)
您是否在调试模式下编译并使符号文件可用?
答案 5 :(得分:1)
如果构建目标目录以“。”开头。 (例如,我使用的是“.xcode-build”),然后找不到.dsym文件。对于我的情况,将构建目录更改为“xcode-build”修复了问题,现在我的所有应用程序的符号都显示在堆栈跟踪中!
答案 6 :(得分:1)
我遇到了同样的问题。事实证明我已将构建目录设置为/ tmp / xcode。将此更改回默认值可修复问题。这是Xcode 3.2.3。
答案 7 :(得分:0)
我有Snow Leopard和Xcode 4.5.2 - Instruments 4.5 一旦我将默认的Debug位置设置为Legacy,它就开始显示
转到文件---->项目设置---->高级---选择遗产