1

一旦在 4.3.2 中检测到泄漏,有没有办法让它带你到发生泄漏的代码行?在文档中它说:

定位泄漏内存。. .

  1. 打开泄漏仪器。
  2. 从选择目标弹出菜单中选择您的应用程序。
  3. 单击录制按钮。
  4. 练习您的应用程序以执行代码,并在显示泄漏时单击停止按钮。
  5. 单击“详细信息”窗格中标识的任何泄漏对象。
  6. 在 Extended Detail 窗格中,双击代码中的指令。
  7. 单击详细信息窗格中的 Xcode 图标以在 Xcode 中打开该代码。

当我双击扩展详细信息下的对象时,它不会打开代码,而是打开一个窗口,如下所示:+0x30 testq %rax, %rax

4

1 回答 1

3

当您在扩展详细视图中双击调用堆栈中的函数时,该函数是您编写的函数吗?如果您双击不是您编写的函数,例如来自 Cocoa 框架的方法,您将获得与您在问题中列出的一样的汇编语言指令。您必须双击您为 Instruments 编写的函数才能显示您的代码。

Instruments 中的调用树视图可以更轻松地找到代码中泄漏内存的区域。从跳转栏中选择调用树。窗口左侧是带有一系列复选框的调用树部分。选择 Invert Call Tree 和 Hide System Libraries 复选框可以更轻松地在调用树中找到您的代码。双击调用树中的一个函数以打开源代码视图,该视图将显示分配泄漏内存的代码行。

于 2012-08-27T18:24:06.263 回答