2010-02-11 54 views
0

我不确定这种技术是否有名称,但我记得很久以前在C++中做过这样的事情。我想断点并观察在我的程序中有数百个特定对象。如果你能告诉编译器使用一个保留的内存空间,这样我就可以运行一次,取出一个内存地址,然后再次运行,让对象分配给内存中相同的地址,这样会很好。可以看到下一次该特定对象会发生什么情况。Obj-C在下一次调试时保留内存地址相同

目前,我只是分配一个'调试ID',每增加一个分配,但认为可能有更干净的方法。我确信我之前用Vis Studio/C++完成了这个工作...

回答

2

您可以在Xcode中设置一个条件断点,以便它只在满足某些条件时才进入调试器。

为此,请正常设置断点,然后右键单击并选择编辑断点

在断点窗口中找到断点,然后双击“条件”列。然后,您可以输入一个表达式,是这样的:

(BOOL)[[yourObject name] isEqualToString:@"foo"] 

这只会打破时yourObjectname属性为foo

请注意,您需要将表达式的结果转换为布尔值,否则gdb不知道如何处理表达式的结果。您也不能使用点符号语法,您必须使用完整的方括号语法。

+0

+1,不是我一直在寻找,但非常有用,知道 – Sam 2010-02-12 22:13:30

相关问题