因此,我正在尝试使用泄漏仪器在我的应用程序中查找泄漏。 当应用程序午餐时,我可以看到106个泄漏,而我找不到它们。
在图像中,您可以看到列表的一部分,但是我该如何深入到生成泄漏的类或代码行呢?
我想念什么吗?
感谢进阶
答案 0 :(得分:1)
您可以在屏幕右侧看到堆栈三叉戟。然后滚动到创建泄漏的类和方法。有时候很难理解为什么会有泄漏。
我有TermsViewController,并且我有NSMuttableAttributed字符串,它会导致内存泄漏。另外,如果我使用TermsViewController.setupInfoText()选择该行,则会打开代码。
答案 1 :(得分:1)
查找泄漏并非如此简单。您需要戴上侦探帽,从外套中拿出放大镜,然后开始寻找踪迹。即
对于每个泄漏的对象,都有一个负责任的库。如果是UIKit,Foundation或任何低级的东西,您将无法查明导致泄漏的代码的位置,因为这些库都是二进制文件的形式。
如果负责编写的库是您正在编写的库,则可以通过在右侧的堆栈跟踪面板中单击正确的方法来转到代码。一个提示是,如果有相应的代码可用,则堆栈跟踪面板中列出的方法将突出显示。
但是,由于不是那么简单,通常您自己的代码会导致某些内部库泄漏,这很难调试。在开始之前,您需要阅读一些教程并练习材料。在stackoverflow上肯定无法解决某些问题。
答案 2 :(得分:0)
如果要查找分配泄漏内存的代码,请使用跳转栏切换到调用树视图。要在调用树视图中查找代码,请反转调用树视图并隐藏系统库。
在调用树视图中双击一个函数将使您深入到分配泄漏内存的代码行。
阅读以下文章,以获取有关使用乐器查找内存泄漏的更多详细信息: