我正在使用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)
答案 0 :(得分:3)
Apple有关于此的技术说明 - TN2151。特别是关于象征崩溃报告的部分。
使用应用程序的.dSYM文件,您可以以更易读的格式将堆栈地址(那些十六进制数字)转换为来自源的调用。