当我在项目中设置断点,并单击"在评估所有动作后继续"复选框时,Xcode不会继续。不仅如此,执行也经常被绞死。不管我在断点上是否有任何操作,这都是正确的。
我的非自动继续断点工作正常。
我尝试了一个全新的项目,问题仍然出现。所以它一定与我的电脑或Xcode中的设置有关。我使用的是雪豹和Xcode 4.0.2。
怎么了?
编辑:代码和控制台日志
代码:- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Override point for customization after application launch.
[self.window makeKeyAndVisible];
int x = 5;
printf("%d", x); // breakpoint here with autocontinue checked and no action
x+=2;
printf("%d", x);
return YES;
}
console log:
This GDB was configured as "x86_64-apple-darwin".sharedlibrary apply-load-rules all
Attaching to process 87901.
Pending breakpoint 1 - ""AutocontinueTestAppDelegate.m":21" resolved
Current language: auto; currently objective-c
57
有趣的是,即使优化设置为none,也会触发两个printf语句。
如果你在设备上运行你的应用程序,我刚刚为你准备了这个:目前,自动继续断点只在模拟器上工作,在设备上不起作用。
来源:某苹果工程师
从你的描述来看,这可能是Xcode的一个bug -在这里报告。
(抱歉我的回答不是很有帮助)
可以粘贴控制台日志吗?检查"条件"one_answers"操作"是否有效且没有错误。我刚刚用resetAllAppData == NO
的动作测试了这一点,但断点没有停止执行,因为"动作"需要是"resetAllAppData == false
"。
这是另一个测试的控制台日志:
Attaching to process 23361.
warning: Error parsing breakpoint condition expression
Pending breakpoint 1 - ""iPhoneAppDelegate.m":50" resolved
我得到了这个错误,因为我将断点的"动作"设置为"调试器命令"po resetAllAppData
,并且由于resetAllAppData不是对象typedef signed char BOOL;
,它不能执行动作,随后不会在断点处停止。
这也发生在我身上。我注意到,在给定的断点,它只会偶尔停止。断点使用po
记录BOOL到控制台。检查它,我注意到当BOOL为1时它会停止,它会停止并附加到日志[no Objective-C description available]
。将它更改为某些东西,以防止无描述可用的"错误"导致自动延续。
现在我用的是:
po (NSString *)[NSString stringWithFormat:@"%d", isCenterActive]
也许有一个更好更短的解决方案。