Is there any way to make lldb behave?

I've had long-standing problems getting lldb to see local variables in many situations. For example, in this CBPeripheral delegate method,

func peripheral(peripheral: CBPeripheral, didDiscoverCharacteristicsForService service: CBService, error: NSError?) {
    if case let .DiscoverCharacteristics(periph) = btState {
        if periph == peripheral {
            btState = .Connected(service)
        }
    }
    connectPeer()
}

the debugger doesn't see self or self.btState or even peripheral or periph. It doesn't matter if you try to access them through the Xcode UI or through the lldb command line. The specific error is "use of unresolved identifier '***'".


Is there any way around this situation? It's getting pretty frustrating. (This is Xcode 7 beta 3, btw.)

Hello, I have noticed the same thing frequently in lldb. I've been using that tried-and-true technique from used by programmers since about 1957: print or log the values you want to see. It is tedious, but it makes me feel a certain comradeship with our switch-toggling predecessors.

Yeah, that's what I've been doing. That, or sometimes defining global symbols to copy values into works as well. I'd love to be able to just tell lldb, "Here's your freaking frame pointer!", though...

Is there any way to make lldb behave?
 
 
Q