2010-06-24 22 views
0

嗨我已經看到了一些使用命令fb在gdb中添加斷點的例子。我曾嘗試使用以下但它不工作...在gdb中使用fb添加斷點 - [NSTimer release]不起作用。如何在[NSTimer發行版]上添加斷點?

fb -[NSTimer release] 

我試過了,但它說。

Function "-[NSTimer release]" not defined. 

正如你可能會告訴我希望調試器在任何NSTimer對象上調用release時停止。

如何在[NSTimer發行版]上創建我想要的斷點?

謝謝!

回答

1

更可能的是,NSTimer實際上沒有實現-release,選擇從超類繼承所述方法。現在

,一種解決方案是添加這樣的:

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

爲項目中的某處。你可以設置一個斷點。

但是,我不打擾。相反,您可以使用「分配工具」查看針對特定對象的每個保留/釋放事件,這通常比發佈版本更有用(特別是考慮到應用程序中可能會有數十個NSTimer對象進入/運行)。

+0

按照你的建議...我用儀器分配,發現我沒有通過屬性分配(應該使用self這樣self.timer = t;),但我通過設置nil釋放屬性(自我.timer = nil;)導致過度銷售。爲了找到這些信息,我必須確保Allocations中的「記錄參考計數」已打開。謝謝! – Cal 2010-06-27 22:28:13