0

嗨,我已经看到了一些使用 fb 命令在 gdb 中添加断点的示例。我尝试过使用以下方法,但它不起作用......

fb -[NSTimer release]

我试过了,但它说。

Function "-[NSTimer release]" not defined.

正如您可能告诉我的那样,我希望调试器在任何 NSTimer 对象上调用 release 时停止。

如何在 [NSTimer release] 上创建我想要的断点?

谢谢!

4

1 回答 1

1

很可能,NSTimer实际上并没有实现-release,选择从超类继承所述方法。

现在,一种解决方案是添加如下内容:

 @interface NSTimer(FooBar)
 @end
 @implementation NSTimer(FooBar)
 -(void) release {
      [super release];
  }
  @end

到你的项目某处。你可以设置一个断点。

不过,我不会打扰。相反,您可以使用分配工具来查看针对特定对象的每个保留/释放事件,这通常比仅发布有用得多(特别是考虑到应用程序中可能有数十个 NSTimer 对象进出)。

于 2010-06-24T06:37:13.813 回答