そして、それが不足しているシンボルについて文句を言います。
(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.
をとにかく、私はこの問題を解決するキャストとは思いません、メッセージを送信できるようにするために、どのようなオブジェクトであるかを知る必要はありません。私は私が調査していた物...か何かに問題があったと思います
(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
: 奇妙なことは、私は、私は何の問題へのメッセージ送信を持っていないNSCFArrayを見つけたことです。
ありがとうございました!あなたはGDBをオーバーライドして、それはあなたをさせませんオブジェクトにメッセージを送信する必要がある場合は
注:[reversing]タグはリバースエンジニアリングのトピックを記述するためのものではありません。代わりに[リバースエンジニアリング]を使用する – user1354557