2011-04-11 72 views
0

我的情况是在这里如何在Xcode中设置条件断点?

(gdb) info break 
Num Type   Disp Enb Address What 
1 breakpoint  keep y 0x0000db8f in -[Instrument getFormattedPriceString:] at Instrument.m:195 
condition not yet parsed: (bool)[[self name] hasPrefix:@"7_"] 
breakpoint already hit 1 time 
Current language: auto; currently objective-c 
(gdb) p (bool)[[self name] hasPrefix:@"7_"] 
$1 = false 
(gdb) po name 
2_YEAR 

尽管这个条件正确评估,我的断点打破每次执行。我在这里看到一些特殊的声明condition not yet parsed。为什么GDB不会解析我的状况?

顺便说一句我使用xcode 3.2.6。 Xcode4甚至没有评估类似a==1

回答

0

考虑一个临时assert()或NSAssert()。基于调试器的表达式评估更可靠。一旦你不再需要断点,就移除assert()调用。语法是:

#include <assert.h> 

assert(!(expression_on_which_to_break)); 
+0

塞瓦,即使是普通的旧if语句也会更好:) – bioffe 2011-04-11 22:02:20

+1

'if(expression)_break();'?这就是主张,实质上是。 – 2011-04-11 22:08:16