当我在项目中设置breakopint,然后单击“在评估所有操作后继续”复选框时,Xcode不会继续。不仅如此,执行经常出现挂起。无论我是否真的对断点进行任何操作,都是如此。
我的非自动连续断点工作正常。
我尝试了一个全新的项目,问题仍然存在。所以它必须与我的计算机或Xcode中的设置有关。我正在使用Snow Leopard和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;
}
控制台日志:
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语句。
答案 0 :(得分:2)
如果您在设备上运行您的应用,我只是为您准备好了: 目前,自动继续断点仅适用于模拟器,而不适用于设备。
资料来源:一位苹果工程师。
答案 1 :(得分:1)
根据您的描述,听起来它可能是Xcode中的一个错误 - 报告here。
(抱歉,我的回答没有帮助)
答案 2 :(得分:1)
可以粘贴控制台日志吗?检查您的“条件”和“操作”是否有效且没有错误。我刚刚使用resetAllAppData == NO
的操作对此进行了测试,但断点并没有停止执行,因为'Action'需要为'resetAllAppData == false
'。
这是另一个测试的控制台日志:
Attaching to process 23361.
warning: Error parsing breakpoint condition expression
Pending breakpoint 1 - ""iPhoneAppDelegate.m":50" resolved
我收到此错误是因为我将断点的“Action”设置为“Debugger Command”po resetAllAppData
,并且由于resetAllAppData不是对象typedef signed char BOOL;
,因此无法执行该操作,因此不会停在断点处。
答案 3 :(得分:0)
这也发生在我身上。我注意到在给定的断点处它只会偶尔停止。断点使用po
将BOOL记录到控制台。检查它我注意到,只要BOOL为1,它就会停止,它会停止并附加到日志[no Objective-C description available]
。将其更改为阻止无描述可用“错误”导致自动继续的内容。
所以现在我正在使用类似的东西:
po (NSString *)[NSString stringWithFormat:@"%d", isCenterActive]
但可能会有更好更短的解决方案。