0

Xcode 4.3.1 を使用していますが、コンソールを使用してコール スタックを取得する方法がよくわかりません。私のコードには、特定のアクションを呼び出す複数の行があり、このアクション内には失敗するアサーションがあります。出力から、アサーション失敗メッセージとコール スタックを呼び出しているオブジェクトのアドレスしか確認できません (少なくとも、それは私が推測しているものです)。しかし、アサーションの原因となったアクションがクラスのどの行から呼び出されたかをナビゲートして確認することはできません (Eclipse からスタック トレースを分析してできることと少し似ています)。これを説明する関連するチュートリアルはありますか?

これは、クラスの複数の行から呼び出しているアクションです。

   [[CCActionManager sharedManager] addAction:[CCSequence actions:fadeAction, nil] target:source paused:NO]; 

アサーションがスローされることは理解していますが、コンソール出力から、このメソッドを呼び出す行がこれを引き起こしていることを理解できません。

これが私のコンソール出力です:

*** Assertion failure in -[CCActionManager addAction:target:paused:], /Users/user/Desktop/SourceCode - Backups/MyApp/MyApp/libs/cocos2d/CCActionManager.m:162
2012-06-21 12:40:54.761 MyApp[4148:707] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Argument target must be non-nil'
*** First throw call stack:
(0x338e08bf 0x303d41e5 0x338e07b9 0x311273b3 0xdc3b 0x5fbe5 0x66d2b 0x338e3814 0x3383e7e1 0x1afbb 0x1c39b 0x1981f 0x3383a435 0x435a7 0x43277 0x44aed 0x3128550f 0x31284f01 0x3126b4ed 0x3126ad2d 0x37fa9df3 0x338b4553 0x338b44f5 0x338b3343 0x338364dd 0x338363a5 0x37fa8fcd 0x31299743 0x58b9b 0x20e4)
4

1 に答える 1

3

Apple には、これに関するテクニカル ノートがあります - TN2151。特に、クラッシュ レポートのシンボル化に関するセクション。

アプリケーションの .dSYM ファイルを使用すると、スタック アドレス (これらの 16 進数) を、はるかに読みやすい形式でソースからの呼び出しに変換できます。

于 2012-06-21T11:00:11.190 に答える