Xcode在自动继续断点处停止

8
当我在项目中设置断点并勾选“评估所有操作后继续”复选框时,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语句均被执行。

您的标题和描述似乎不一致。问题是“Xcode在自动继续断点处停止”还是“Xcode没有停止”?如果是前者,我遇到了完全相同的问题,并希望您能得到一个好的答案! - clozach
这在Xcode 4.1中发生吗? - Beltalowda
我认为@deanWombourne可能是对的:很可能是一个bug。这是我刚刚做的一个测试:1)在按钮操作中设置断点;2)编辑并设置播放声音+自动继续;3)运行应用程序:当我在模拟器中点击按钮时,应用程序会暂停。4)将断点向下拖动一行:应用程序继续运行,模拟器进入前台,随后的点击会在不暂停的情况下播放声音。 - clozach
4个回答

2
如果您在设备上运行应用程序,我可以告诉您以下信息: 目前,自动继续断点仅适用于模拟器,而不适用于设备。 来源:某位苹果工程师。

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;,它无法执行该操作,因此也无法在断点处停止。

1

根据您的描述,这似乎可能是Xcode中的一个错误 - 在此处报告它。

(很抱歉我的回答没有更多帮助)


0
这也发生在我身上。我注意到在某个断点处,它只会偶尔停止。断点使用po将BOOL记录到控制台。检查后发现,每当该BOOL为1时,它就会停止并附加到日志中[没有Objective-C描述可用]。将其更改为防止该无描述可用的“错误”结果自动继续。

所以现在我正在使用类似以下内容:

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

尽管如此,可能存在更好和更短的解决方案。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接