Você pode definir um ponto de interrupção condicional no Xcode definindo o ponto de interrupção normalmente, então clique com o botão direito do mouse nele e selecione Editar Ponto de Interrupção (escolha Executar -> Mostrar -> Pontos de Interrupção).
Na entrada do ponto de interrupção, há uma coluna Condição.
Agora, há vários problemas a serem considerados para essa condição. Em primeiro lugar, o gdb não entende a sintaxe de ponto, portanto, em vez de myObj.name, você deve usar [nome do myObj] (a menos que nome seja um ivar).
A seguir, como com a maioria das expressões em gdb, você deve informar o tipo de resultado de retorno, a saber "BOOL". Portanto, defina uma condição como:
(BOOL)[[myObj name] isEqualToString:@"Bar"]
Freqüentemente, é realmente mais fácil apenas fazer isso no código adicionando temporariamente o código como:
if ( [myObj.name isEqualToString:@"Bar"] ) {
NSLog( @"here" );
}
e, em seguida, definir o ponto de interrupção no NSLog. Então, sua condição pode ser arbitrariamente complexa sem ter que se preocupar com o que o gdb pode ou não analisar.