LLDB:使用指向内存中对象的指针显示所有对象

时间:2013-06-03 01:36:14

标签: objective-c debugging lldb

所以,在断点处,我有一个随机对象实例。我想弄清楚哪些对象有一个指向这个对象的指针。有没有办法在调试器控制台中看到这个?也许某些东西向我展示了对象中保留的所有对象?

示例:我有一个NSViewController实例,我希望看到包含此​​视图控制器实例的指针的所有其他对象。这会很有用,因为它可以让我看到封装我的实例的视图控制器层次结构。

只是一个疯狂的想法,我有时会真的有所帮助。

2 个答案:

答案 0 :(得分:29)

在lldb中,使用command script import lldb.macosx.heap安装一些内存搜索功能。 ptr_refs命令应该能够做你想要的;使用ptr_refs --help了解更多信息。

答案 1 :(得分:0)

不是一个有效的解决方案,或者在所有情况下都适用,但是您可以在一个类的访问器方法中封装您正在寻找的对象,并在其中放置一个断点。通过逐步访问存取方法,您最终可以看到所有的调用点。

或者,您可以删除变量的定义,编译器会吐出大量错误,每个错误也会调用此对象。

如果你还没有使用ARC,我建议使用ARC。理想情况下,您的代码不会太乱,以至于您无法通过阅读代码来识别引用,ARC可以在该部门中帮助一点