I'm trying to send messages to Objective-C objects in gdb.
(gdb) p $esi
$2 = (void *) 0x1268160
(gdb) po $esi
<NSArray: 0x1359c0>
(gdb) po [$esi count]
Target does not respond to this message selector.
I can't send any message to it. Am I missing something? Do I really need the symbols, or something else?
If you must override gdb and send a message to an object when it will not let you, you can use performSelector:
(gdb) print (int)[receivedData count]
Target does not respond to this message selector.
(gdb) print (int)[receivedData performSelector:@selector(count) ]
2008-09-15 00:46:35.854 Executable[1008:20b] *** -[NSConcreteMutableData count]:
unrecognized selector sent to instance 0x105f2e0
If you need to pass an argument use withObject:
(gdb) print (int)[receivedData performSelector:@selector(count) withObject:myObject ]
Is it possible that you need to cast $esi
?
p (NSUInteger)[(NSArray *)$esi count]
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With