Xcode在自动继续断点处停止



当我在项目中设置断点,并单击"在评估所有动作后继续"复选框时,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]

也许有一个更好更短的解决方案。

最新更新