Xcode在自动继续断点处停止

时间:2011-08-29 16:16:46

标签: iphone ios xcode debugging breakpoints

当我在项目中设置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语句。

4 个答案:

答案 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]

但可能会有更好更短的解决方案。