Вы можете установить условную точку останова в XCode, установив точку останова обычным образом, затем нажмите на нее, удерживая клавишу Control, и выберите «Изменить точку останова» (выберите «Выполнить» -> «Показать» -> «Точки останова»).
В записи точки останова есть столбец Условие.
Теперь необходимо учитывать несколько вопросов. Во-первых, GDB не понимает синтаксис точек, поэтому вместо myObj.name вы должны использовать [myObj name] (если name не является ivar).
Далее, как и в большинстве выражений в gdb, вы должны указать тип возвращаемого результата, а именно «BOOL». Итак, установите условие как:
(BOOL)[[myObj name] isEqualToString:@"Bar"]
Часто на самом деле проще сделать это в коде, временно добавив код, подобный:
if ( [myObj.name isEqualToString:@"Bar"] ) {
NSLog( @"here" );
}
и затем установка точки останова в NSLog. Тогда ваше состояние может быть сколь угодно сложным, не беспокоясь о том, что GDB может и не может анализировать.