开发者

Xcode, no debug symbols for certain subclass

I'm using Xcode 3.2.3 and iPhone SDK

So I'm trying to debug a UIView subclass, I hit a breakpoint in an overridden method and I can't see any symbols in either the GUI or gdb, just globals and registers.

This is what I see:

(gdb) po self
No symbol "self" in current context.

Yet when I set a breakpoint in a UIViewController subclass, all the symbols are there:

(gdb) po self
<MyViewController: 0x开发者_JAVA技巧5c18ae0>
Current language:  auto; currently objective-c

Some things I've tried:

  • clean all/rebuild
  • restart Xcode
  • change between debug and release
  • config these options in Project settings:
    • GCC_DEBUGGING_SYMBOLS = All
    • Symbols DEBUG_INFORMATION_FORMAT = DWARF, DWARF w/ dSYM File
    • BUILD_VARIANTS = normal, debug
  • threatening Xcode by swearing at it and typing rm -rf /Developer into a root bash prompt

Please help, my fingers are bleeding from debugging with NSLog


I experience this bug often. My workaround is typing the bt command on the gdb console, it then automagically sorts itself out and starts recognizing symbols in the current context.


So changing from Debug to Release did the trick and I have all my debug symbols.

I think it's just a bug in the 4.0 SDK.


Hmmm, tried to repro this in 3.2.3 and SDK4 Final with no success -- able to debug UIView subclass as expected. Is this occurring using one of the beta releases?


Happening to me, on a non-beta release. I just noticed that it only occurs when calling a class-defined method, ie (+) not (-)

I wouldn't mind not having a "self" pointer, but it also seems to wipe out all local variable displays in the debugger, and that is just wrong.


MTS' method worked for me. Changing from debug to release fixes this issue. How strange. I can disprove software evolved's theory, as I experience the error inside an instance method.


in gdb type bt.

If you see self=<value temporarily unavailable, due to optimizations> anywhere it's because xcode has been set to be optimized.

Go to the build settings and type optimization.

If optimization level for either debug or release is set to Fastest that's causing your issue.

Release should be left at fastest so your code run well when building for distribution. It's better to change your Build Configuration in Scheme.

opt+click the Run button. On the left click Run YourAppsName.app, then Info and select debug.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜