Or another way, I don't object to asserts because we hit them so often today. I object to asserts in a shipping debugger fundamentally - it's not an error mode we should encourage or depend on for an interactive tool.
> On Sep 12, 2017, at 2:56 PM, Jason Molenda <jmole...@apple.com> wrote: > > I think debug-build asserts & more testing is something everyone can agree > on. I don't want to speak for Greg, but I don't think anyone is going to > sign on to the idea that the lldb source base becomes super well tested & bug > free and then we start using asserts liberally. There are always going to be > scenarios that our customers hit, with compilers we don't have access to, > with programs we don't have access to, with targets we don't have access to, > that we don't cover in our testsuite. We can work to expand our testsuite, > and expand the scope of what / how we test the debugger, but we'll never > match the behavior someone running lldb on an AutoCAD built with a three year > old gcc or whatever. > >> On Sep 12, 2017, at 2:53 PM, Zachary Turner <ztur...@google.com> wrote: >> >> So let's say that in a hypothetical future we had very good test coverage. >> Would there still be resistance to asserts? Because if your test coverage >> is good, then your bots should be catching most stuff. >> >> On Tue, Sep 12, 2017 at 2:42 PM Greg Clayton <clayb...@gmail.com> wrote: >> Agreed. We need to do better on the test coverage part, don't think you'll >> get any pushback on that front. >> >>> On Sep 12, 2017, at 2:36 PM, Zachary Turner <ztur...@google.com> wrote: >>> >>> Right, and the only reason it's a bigger problem is because of.... test >>> coverage. >>> >>> On Tue, Sep 12, 2017 at 2:34 PM Jason Molenda <jmole...@apple.com> wrote: >>> >>> >>>> On Sep 12, 2017, at 11:19 AM, Zachary Turner <ztur...@google.com> wrote: >>>> >>>> >>>> >>>> On Tue, Sep 12, 2017 at 11:07 AM Greg Clayton <clayb...@gmail.com> wrote: >>>> >>>>> On Sep 12, 2017, at 10:10 AM, Zachary Turner <ztur...@google.com> wrote: >>>>> >>>>> >>>>> >>>>> On Tue, Sep 12, 2017 at 10:03 AM Greg Clayton <clayb...@gmail.com> wrote: >>>>>> On Sep 12, 2017, at 9:53 AM, Zachary Turner <ztur...@google.com> wrote: >>>>>> >>>>>> If you had just logged it, the bug would still not be fixed because >>>>>> nobody would know about it. I also can't believe we have to keep saying >>>>>> this :-/ >>>>> >>>>> By log, I mean Host::SystemLog(...) which would come out in the command >>>>> line. Not "log enable ...". So users would see the issue and report the >>>>> bug. Crashing doesn't mean people always report the bug. >>>>> I mentioned earlier in the thread that I assumed Xcode had an automatic >>>>> crash that would handle the crash and automatically upload it to Apple. >>>>> Is this really not the case? If core dumps are too big, why not just a >>>>> stack trace? Surely the Xcode team must have some kind of internal >>>>> metrics system to track stability. >>>> >>>> They do just upload text crash logs. It doesn't tell us what expression >>>> triggered the issue though. It shows a crash in an expression, but doesn't >>>> show the expression text as this violates privacy. >>>> >>>> So, you do get a bug report when a crash occurs then. In contrast to the >>>> case where you simply log something, and don't get a crash report. >>>> >>>> In some cases, you can look at the code and figure out why it crashed. In >>>> other cases the bug occurs extremely infrequently (you can build heuristic >>>> matching of call-stacks into your infrastructure that processes the crash >>>> logs). If it's a high incidence crasher then you do some investigation. >>>> And the good news is, once you fix it, you've *actually* fixed it. Now >>>> instead of hundreds of thousands of people using something that doesn't >>>> work quite right for presumably the rest of the software's life (since >>>> nobody knows about the bug), they have something that actually works. >>>> >>>> There's probably some initial pain associated with this approach since the >>>> test coverage is so low right now (I came up with about ~25% code coverage >>>> in a test I ran a while back). When you get this higher, your tests start >>>> catching all of the high incidence stuff, and then you're left with only >>>> occasional crashes. >>>> >>>> And since you have the out of process stuff, it doesn't even bring down >>>> Xcode anymore. Just a debugging session. That's an amazing price to pay >>>> for having instant visibility into a huge class of bugs that LLDB is >>>> currently willfully ignoring. >>> >>> >>> I guess I'm speaking at someone who is supporting a debugger used by tens >>> of thousands of people. The debugger crashing is a vastly bigger problem >>> to us than bugs that didn't announce themselves by taking down the >>> debugger. lldb_asserts that activate when we're running debug builds are >>> fine, that's exactly when I want to see the debugger crash on my desktop or >>> when it's running the testsuite. Asserting when it's on the customer's >>> desktop is a no-go. >> > _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits