clayborg added a comment.

In D97739#2607869 <https://reviews.llvm.org/D97739#2607869>, @jingham wrote:

> This way of doing progress is going to look odd in anything that uses 
> multiple debuggers.  If I'm reading the code aright, if I have two debuggers, 
> and a target in Debugger A starts doing something that would cause progress 
> traffic, both debuggers will show activity.

that is true, but it is a global module repository that benefits both 
debuggers. And I very rarely debug two things at the same time, so most of the 
time for most people this will be beneficial and shouldn't cause too much 
confusion.

We can also add debugger specific progress in the future when we do have a long 
running task that can be associated with a specific debugger.

> Given that the candidate for progress that is most common is down in 
> SymbolFile, it's going to be hard to fix that.  You'd have to have some way 
> of marking the API boundary from "where you have a Target" to "where you 
> don't have a Target" and record (maybe with TSD) that this target is using 
> this API on this thread...  Then you could use that to send the progress to 
> the right actor.

Yeah, we would need to try and catch all of the areas that end up making 
queries just to avoid broadcasting extra progress to multiple debuggers. But 
again, 99.9% of the time people are debugging one thing.

> Note, this is the way Xcode runs lldb, so this isn't a trivial concern.  
> OTOH, it might be more trouble than it's worth to fix.  But we should make 
> clear that each callback will receive events caused by any of the extant 
> debuggers, regardless of which debugger it was registered for.  That very 
> much changes how you would present the results.

It isn't too often that people debug multiple things at the same time. It does 
happen. But it would be ok for the activity in each window to show what is 
going on for things that can't be tied back to a specific debugger since it 
will benefit them all. Kind of like the old Apple mail activity view if anyone 
remembers that, it would be find for each window to show the same thing.

This at least allows us to supply feedback for long running operations where 
clients right now have no way of knowing why the delays are happening and often 
just kill the debug session when it is taking too long. So some feedback is 
much better than none IMHO.

> I also wonder a little bit why you went with a callback rather than sending 
> progress events?  You wouldn't have had to invent a callback mechanism, then. 
>  Whoever cared about progress events would sign up for the "ProgressEvent" 
> bit on their Debugger, and could do what they like.

We can go with SBBroadcaster and SBListener events if that is what everyone 
thinks is the best way forward. SBDebugger currently doesn't vend any events so 
that would need to be added. SBDebugger but does use a logging callback which 
probably could be also converted to SBEvents.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D97739

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

Reply via email to