lldb error: property not found on object of type

Can Poyrazoğlu picture Can Poyrazoğlu · Dec 23, 2012 · Viewed 12.1k times · Source

I am trying to debug my iOS app using lldb and I'm getting really weird errors on debug.

A few lines before my breakpoint, I've got:

CGRect frame = view.frame;

Which I can access with no problems with print frame command in lldb. However, when I try to access the frame again in lldb, I type print view.frame and get the following error:

error: property 'frame' not found on object of type 'UIView *'

This doesn't make sense as I can verify the view is a UIView* instance and has a valid property called frame by typing po view and getting correct results:

(UIView *) $4 = 0x1e199bf0 <MyAppCustomView: 0x1e199bf0; frame = (3398 3396; 204 208); layer = <CALayer: 0x1e199ce0>>

This particular lldb error happens to me a lot, and I couldn't find the cause of this error. Someone suggested at Property 'count' not found on object of type 'NSMutableArray *' PO command in lldb that one could use gdb as (gdb) p view.frame but I'm getting error: '(gdb)' is not a valid command. and I highly suspect that a gdb command would "work?" inside another debugger anyway.

Any suggestions or workarounds for this bug which occurs randomly?

Answer

Nate Chandler picture Nate Chandler · Dec 23, 2012

Dot notation for message sending is not supported in lldb when using Objective-C. Use bracket notation and cast the result to CGRect:

p (CGRect)[view frame]