2011-08-29 80 views
7

当我设置在我的项目breakopint,并点击“继续评估所有动作之后”复选框时,Xcode不会继续。不仅如此,执行经常似乎挂起。无论我是否在断点上有任何操作,情况都是如此。Xcode是在停止自动继续断点

我非AUTOCONTINUE断点正常工作。

我尝试了全新的项目和问题仍时有发生。所以它必须与我的电脑或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; 
} 

控制台日志:

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 

有趣的是,即使是最优化设置为无,既printf语句解雇。

+0

您的标题和说明似乎有冲突。问题是“Xcode [是]在自动继续断点处停止还是”Xcode不停止“?如果是前者,我会得到完全相同的问题,并希望你能得到一个很好的答案! – clozach

+0

这是否出现在Xcode 4.1中? –

+0

我实际上认为@deanWombourne可能是对的:可能是一个错误。以下是我刚刚做的一个测试:1)在按钮操作中设置断点2)编辑并设置播放声音+自动继续3)运行应用程序:当我点击模拟器中的按钮时,应用程序暂停。 4)将断点拖到一行:应用程序继续,模拟器进入前台,随后的水龙头不停顿地播放声音。 – clozach

回答

1

从你的描述,这听起来像它可能是在Xcode中的错误 - 举报here

(对不起,我的回答没有更多帮助)

1

您可以粘贴您的控制台日志。检查你的'条件'和'行动'是否有效,没有错误。我只是用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;它不能执行该动作,并且随后不会停在断点处。

2

如果您正在设备上运行您的应用程序,我刚刚为您解答了这个问题: 目前,自动继续断点仅适用于模拟器,不适用于设备。

来源:一些苹果工程师。

0

这也发生在我身上。我注意到,在给定的断点处它只会偶尔停止。断点使用po将BOOL记录到控制台。检查它我发现它会停止,只要BOOL是1,它将停止并追加到日志[no Objective-C description available]。将其更改为防止无法描述的“错误”导致自动继续。

所以,现在我使用的是这样的:

po (NSString *)[NSString stringWithFormat:@"%d", isCenterActive] 

有可能是一个更好的和更短的解决方案,但。