@ [ジョン・カルスビーク]
次に、シンボルの欠落について文句を言います。
(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.
Foundationのシンボルをロードしようとしました:
(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
ですから、私が調査していたオブジェクトに問題があったと思います...または何か。
ご協力いただきありがとうございます!