jingham added a comment.

I had to fix one other thing.  I had arbitrarily made the decision that if an 
internal breakpoint was hit while running an expression we should stop before 
running its callbacks.  At the time we only had internal breakpoints with sync 
callbacks (again mostly dynamic loader plugins) so there wasn't really an 
example to reason on.  But with these sanitizer ones now async, we can hit this 
issue.  The problem with hitting a breakpoint while running an expression is 
that those breakpoint commands could run the target in arbitrary ways, which 
could hit this breakpoint, and then call other commands, etc, and right now the 
Command Interpreter can only be invoked recursively with some care, so I outlaw 
that.  But I think it's better for internal breakpoints to let their callbacks 
run, and leave it up to the callback how it wants to do its business.  In the 
case of the sanitizers, they just don't run their reports if there's a 
sanitizer issue while calling a function, in other cases we're just reading 
memory, etc.

So I added that change to StopInfo, and updated the patch.  I'll let it sit for 
a bit in case anyone wants to have a look.  I also made variables for the 
"false" I was passing to SetCallback as Jonas suggested.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D134927/new/

https://reviews.llvm.org/D134927

_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to