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