代码之家  ›  专栏  ›  技术社区  ›  Andrew Garrison

仪器泄漏-未显示源代码

  •  14
  • Andrew Garrison  · 技术社区  · 17 年前

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

    编辑:我正在使用带有调试配置的“设备-iPhone OS 2.2”编译应用程序。我通过选择“运行”->“从性能工具开始”->“Xcode中的泄漏”来启动泄漏。对于泄漏,如何“使符号文件可用”?

    alt text http://www.andrewgarrison.com/forum/leaks_nosource.png

    8 回复  |  直到 13 年前
        1
  •  2
  •   Gordon Childs    16 年前

    从两个启动盘中删除任何非ASCII字符
    和主机名(请参见系统首选项中的共享面板) 然后重新启动。

    塔达!

        2
  •  13
  •   AWrightIV    15 年前

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

    1. 在Xcode中,转到“运行”->使用性能工具运行并选择您的工具
    2. 仪器加载后,点击停止按钮停止记录。转到“文件”->重新标记文档。
    3. 在“新建”窗口中,单击“路径”,然后单击加号(+)按钮以添加新路径。导航到包含项目文件的文件夹,然后单击“打开”。单击“符号化”。
    4. 利润!

    我找了一个好月才找到解决办法。希望这对你们中的一些人有帮助!

        3
  •  8
  •   n8gray    16 年前

    我看到了这种情况,但在另一种配置上。在SnowLeopard 10.6.1、Xcode3.2、Instruments 2.0中,当我在模拟器中运行iPhoneOS3.0时,在Leaks中没有得到任何符号。在苹果的iPhone开发者论坛中搜索发现,这是iPhone3.0SDK的一个已知问题(目前正在研究中),将活动的SDK切换到3.1是一个解决方案。当然,这对我有用!

        4
  •  2
  •   Kirby Todd    15 年前

    项目 gt; 编辑项目设置

    选择 调试 目标

    点击 建造 标签

    确保 条连产品 未经检查

        5
  •  1
  •   Mitch Wheat    17 年前

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

        6
  •  1
  •   Gabriel    16 年前

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

        7
  •  1
  •   Magnus    15 年前

    我也有同样的问题。结果我把构建目录设置为/tmp/xcode。将此更改回默认值解决了问题。这是Xcode3.2.3。

        8
  •  0
  •   world-software.net    13 年前

    我有带xcode 4.5.2-仪器4.5的雪豹 一旦我将默认调试位置设置为legacy,它就开始显示

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

    Debug Location ---Legacy Settings