I was debugging an objc code today from a binary objc framework that was built in release mode and noticed that lldb was giving a
nil for variables inside the method that has an
As we can see, is clear that url has a value, but lldb is unable to evaluate. It does work if built in debug mode, and initially I was leaning towards that this was expected due to optimizations, but is not like the variables were optimized away, and given that it works fine when not inside synchonized block was a little bit curious about the difference from the debugger perspective in a optimized build.
The question here is if this is a bug/limitation of lldb today? Or expected due to how compiler handles synchonized block?
I just want to understand even if is on a more high level why this happens for this specific case.