2012-08-27 43 views
1

一旦在4.3.2中检测到泄漏,是否有办法让它发送代码行?在文档中说:XCode Instruments - 找到代码泄漏的行

找到泄漏的内存。 。 。

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

当我下的扩展详细的对象上双击,它不会打开代码,它会打开一个窗口的东西,如:+0x30 testq %rax, %rax

回答

3

调用堆栈当您双击功能在扩展详细视图中,函数是你写的函数吗?如果你双击一个你没有写的函数,比如Cocoa框架中的一个方法,你将得到汇编语言指令,就像你在问题中列出的那样。您必须双击您为Instruments编写的函数才能显示您的代码。

仪器中的调用树视图可以更容易地找到泄漏内存的代码区域。从跳转栏中选择Call Tree。在窗口的左侧是一个Call Tree部分,其中包含一系列复选框。选择“反转调用树”和“隐藏系统库”复选框可以更轻松地在调用树中查找代码。双击调用树中的某个函数打开源视图,该视图将向您显示分配泄漏内存的代码行。

+0

谢谢,看起来它不是我的一个功能。我按照支票簿的说法做了并且关闭了系统库,我只有一个符号名称为“start”的漏洞......呃,去找出导致它的代码。现在,当我从下拉列表中选择泄漏时,泄漏的对象就是我的一个类,“责任框架”是 - [NSCustomObject nibInstantiate] - 我不知道那是... – janeh

+0

好的,我修复了泄漏 - 它是在MainMenu.xib中启动一个类的时候,短语“start”是一个线索。手指交叉我不会再看到它。 – janeh

+0

我能够看到树,但是电话显示我的应用程序名称和一些内存地址。仪器还需要能够链接回代码吗? – Efren