【发布时间】:2010-11-08 21:09:17
【问题描述】:
我正在尝试调试一个 iPhone 应用程序(iOS 模拟器 4.1)的小型原型,编译为 Debug,所有配置显然都可以。
应用程序使用 Cocos2d 图形引擎和 GDataXMLNode 库(用于 XML 读取)。没有太多的事情发生。但在某些方法上,如果我设置断点,gdb 就会“停止”。
这是调试器在遇到断点后的状态行:
这是有断点的代码(sshot):
注意:断点可以在该函数中的任何位置,并且是相同的。
这是调用代码(来自另一个对象)
self.map = [SimulationLoader loadMap];
当在“loadMap”中设置断点时,所有编辑器按钮都不起作用(进入、退出、下一步、继续执行等)。我可以停止和/或重新启动调试并且它可以工作(但会继续回到开头)。gdb 提示会让我写,但什么也没有发生。我无法查看对象值或任何与调试相关的内容。我无法恢复执行,它不会做任何事情。
奇怪的是,如果我在该行(loadMap)before 或after 放置一个断点,一切正常,我可以退出或进入,调试它并做我想做的一切。
我错过了什么?
在命中“失败”断点(并“挂起”)几秒钟后,堆栈窗口将被清除。我相信这一切的发生是因为 gdb 已经停止了,但问题是,为什么它会停在那里?这有什么限制?
我正在使用 LLVM GCC 4.2 进行编译,以获得价值(但如果出现问题,可能会更改为其他版本,因为我不太了解差异,所以没有尝试过)。
【问题讨论】:
标签: iphone debugging xcode3.2 ios4