Xcode останавливается в точках автоматического продолжения - PullRequest
7 голосов
/ 29 августа 2011

Когда я устанавливаю 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

Интересно, что даже если оптимизация не была установлена, оба оператора printf сработали.

Ответы [ 4 ]

2 голосов
/ 01 ноября 2011

Если вы запускаете ваше приложение на устройстве, я просто получил это для вас: В настоящее время точки прерывания с автоматическим продолжением работают только на симуляторе, а не на устройствах.

Источник: какой-то инженер Apple.

1 голос
/ 07 сентября 2011

Можете ли вы вставить свой консольный журнал.Убедитесь, что ваши «Условие» и «Действие» являются действительными и без ошибок.Я только что проверил это с действием 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 голос
/ 02 сентября 2011

Из того, что вы описываете, звучит так, как будто это может быть ошибка в XCode - сообщите об этом здесь .

(Извините, мой ответ не более полезен)

0 голосов
/ 12 октября 2012

Это происходило и со мной тоже. Я заметил, что в определенный момент останова он останавливается только изредка. Точка останова записывала BOOL на консоль, используя po. Осмотрев его, я заметил, что он останавливается всякий раз, когда BOOL равен 1, останавливается и добавляется в журнал [no Objective-C description available]. Изменив его на что-то, что предотвратило, что «ошибка», не доступная для описания, привела к автоматическому продолжению.

Так что теперь я использую что-то вроде:

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

Возможно, есть лучшее и более короткое решение.

...