Отправка сообщений к объектам при отладке Objective C в gdb, без символов

Если у вас есть маркер fcm (gcm) устройства, которому вы хотите отправить уведомление. Это просто запрос на отправку уведомления.

https://github.com/prashanthd/google-services/blob/master/android/gcm/gcmsender/src/main/java/gcm/play/android/samples/com/ gcmsender / GcmSender.java

11
задан Kevin Guan 14 December 2015 в 01:37
поделиться

3 ответа

Если необходимо переопределить gdb и отправить сообщение в объект, когда он не позволит Вам, можно использовать 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

Если необходимо передать использование аргумента withObject:

(gdb) print (int)[receivedData performSelector:@selector(count) withObject:myObject ]
10
ответ дан 3 December 2019 в 09:42
поделиться

[John Calsbeek]

Затем это жалуется на отсутствующие символы.

(gdb) p (NSUInteger)[(NSObject*)$esi retainCount]
No symbol table is loaded.  Use the "file" command.
(gdb) p [(NSArray *)$esi count]
No symbol "NSArray" in current context.

Я пытался загрузить символы для Основы:

(gdb) add-symbol-file /System/Library/Frameworks/Foundation.framework/Foundation 
add symbol table from file "/System/Library/Frameworks/Foundation.framework/Foundation"? (y or n) y
Reading symbols from /System/Library/Frameworks/Foundation.framework/Foundation...done.

но все еще никакая удача:

(gdb) p [(NSArray *)$esi count]
No symbol "NSArray" in current context.

Так или иначе я не думаю, бросая, решение этой проблемы, Вам не придется знать, какой объект это, чтобы смочь отправить сообщения в него. Странная вещь состоит в том, что я нашел NSCFArray, в который у меня нет проблем при отправке сообщений:

(gdb) p $eax
$11 = 367589056
(gdb) po $eax
<NSCFArray 0x15e8f6c0>(
    file://localhost/Users/ask/Documents/composing-fractals.pdf
)

(gdb) p (int)[$eax retainCount]
$12 = 1

таким образом, я предполагаю, что была проблема с объектом, который я исследовал... или что-то.

Спасибо за помощь!

0
ответ дан 3 December 2019 в 09:42
поделиться

Действительно ли возможно, что необходимо бросить $esi?

p (NSUInteger)[(NSArray *)$esi count]
1
ответ дан 3 December 2019 в 09:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: