jingham added a comment.

In D113810#3132418 <https://reviews.llvm.org/D113810#3132418>, @clayborg wrote:

> In D113810#3128741 <https://reviews.llvm.org/D113810#3128741>, @jingham wrote:
>
>> The stop id includes all the user expression stops.  So the same "drive 
>> through code" could produce very different stop counts if you ran a bunch of 
>> `p`-s in one session but not the other.  You can't do better than that at 
>> present since we only track the natural/vrs. expression stop id for the last 
>> stop.  But if it mattered you could keep a separate "natural stop" counter 
>> and report that instead.  You can't quite get back to the natural stops by 
>> subtracting the number of expressions, because not all expressions run the 
>> target, and some do twice (if the one-thread run times out).
>
> I actually don't care about the number of natural user stops as the user will 
> be aware of these stops. The info I am interested in is when a debug session 
> has thousands of stops that auto resumed a debug session. This can happen if 
> unix signals are used for program flow control or working around things. 
> Android uses SIGSEGV for catching java NULL derefs and many times we will 
> auto resume from these depending on signal settings. If a debug session is 
> taking a long time it is nice to know. Some users might also have some python 
> module that gets loaded and might end up setting a breakpoint with a callback 
> that can auto resume.

IMO, the real solution for this issue is for lldb to invent (if there isn't 
already) a "auto-continue signals" packet, so we could tell the stub to restart 
from those signals w/o even telling lldb about it.

> The one metric I do want in the future is the time spent in stops that auto 
> resume, like shared library loading stops where it stops, does some work, and 
> auto resumes. The unix signals that cause stops where we auto resume would 
> fit into that category. So one idea for the future it so start a timer each 
> time we stop and then right before we resume stop the timer and report this 
> time as something like "transparentStopTime" or something similar. Expression 
> evaluation could also be counted in the time it took to evaluate expression 
> as a separate stat.

Also, ThreadPlans stop a lot without any user-visible stops.  So a complicated 
step can also rack up the stops.  Right now, we don't do any accounting for 
"who is responsible" for auto-continuing, so you'd have to add that in.

>> I'm not sure that's terribly important, provided people doing this analysis 
>> know that both stops are getting counted, and this is a useful statistic 
>> either way.
>>
>> Anyway, other than that, LGTM.
>
> I was only looking for the total stops for now as it was really easy to add 
> and could give us some insight to slow debug sessions if this number is 
> really high.

Sounds fine.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D113810

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

Reply via email to