我正在使用Xcode 3.2.3和iPhone SDK
所以我正在尝试调试一个UIView子类,我在一个重写方法中遇到一个断点,我在GUI或gdb中看不到任何符号,只是全局和寄存器。
这就是我所看到的:
(gdb) po self
No symbol "self" in current context.
然而,当我在UIViewController子类中设置断点时,所有符号都在那里:
(gdb) po self
<MyViewController: 0x5c18ae0>
Current language: auto; currently objective-c
我尝试过的一些事情:
rm -rf /Developer
进入root bash提示符请帮助,我的手指在使用NSLog调试时出血
答案 0 :(得分:4)
我经常遇到这个错误。我的解决方法是在gdb控制台上键入bt命令,然后自动排序并开始识别当前上下文中的符号。
答案 1 :(得分:3)
因此,从 Debug 更改为 Release 可以解决问题,我拥有所有调试符号。
我认为这只是4.0 SDK中的一个错误。
答案 2 :(得分:0)
嗯,试图在3.2.3和SDK4 Final中重复此操作但没有成功 - 能够按预期调试UIView子类。这是使用其中一个测试版发生的吗?
答案 3 :(得分:0)
在非测试版发布时发生在我身上。我只是注意到它只在调用类定义的方法时发生,即(+)not( - )
我不介意没有“自我”指针,但它似乎也消除了调试器中的所有局部变量显示,这是错误的。
答案 4 :(得分:0)
MTS的方法对我有用。从调试更改为发布版修复了此问题。多么奇怪。我可以反驳软件演化的理论,因为我在实例方法中遇到了错误。
答案 5 :(得分:0)
在gdb类型 bt 。
如果您看到 self =&lt;值暂时不可用,由于优化&gt; ,因为xcode已设置为优化。
转到构建设置并输入优化。
如果调试或发布的优化级别设置为 Fastest ,则会导致您的问题。
发布应保持最快,以便在构建分发时您的代码运行良好。最好在Scheme中更改Build Configuration。
选择+单击“运行”按钮。在左侧单击Run YourAppsName.app,然后单击Info并选择 debug 。