I agree with Jason here, but I guess that's no surprise. Jim
> On Sep 12, 2017, at 2:57 PM, Jason Molenda via lldb-commits > <lldb-commits@lists.llvm.org> wrote: > > 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 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits