jimingham wrote:

I'm not sure that you really always want to do this.  Fetching the 
ObjectDescription for a variable means running code in the target to do so.  
And because we can't tell whether code in an ObjectDescription will require 
locks that other threads might hold, we do our usual "try on one thread for a 
bit, then run all threads".

So if you run ObjectDescription for every variable in a locals view, you can 
pretty easily get into the situation where you stop on a breakpoint in Thread 
A, switch to Thread B to see a frame and its locals and then when you switch 
back to Thread A it is no longer at the breakpoint - because running all the 
ObjectDescriptions for the frame in Thread B required allowing Thread A to run.

If you can ensure that the expression you are running can safely be executed by 
running only the current thread, it's only a performance problem to run 
expressions behind the user's back.  But otherwise, we really should only run 
expressions when the user explicitly asks us to.

https://github.com/llvm/llvm-project/pull/146754
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to