<Unable to determine byte size>
is the (admittedly somewhat cryptic) error message that LLDB will print out when it does not understand the type of something.
Let me elaborate a little bit more. When you type an expression, or do a frame variable, the debugger has to evaluate whatever code you provided, or lookup the variable(s) you asked for.
In order to present the results of that to you, it also has to understand the type of things. For instance, an Int is a thing that has a numeric value whose size matches the pointer size on your machine, ... (well, to be 100% precise, an Int is a thing that has a member that has a numeric value..., but LLDB abstracts that away from you). A String is a thing that has some text (again, it's a little trickier, but LLDB abstracts that). One of the things the debugger likes to know is the "byte size" of a type, as in how many bytes in memory does an object of this type occupy?
Sometimes, the debugger can't understand the types that are being talked about. When that happens, obviously, one of the things that can't be determined is the byte size. Hence, the message.
If you run into situations where the debugger can't infer types in your apps, please file bugs http://bugreport.apple.com
self
. The full printout offr v
will often include the details of other in-memory variables and have no issue printing those. I suspect that there is some kind of object type that the debugger is unable to analyze that is a member of all the different objects I'm unable to print, but I don't know what properties that kind of problematic object type would have that would cause this. – Outface