> On Sep 14, 2016, at 7:50 AM, Patrice Kouame via swift-users
> <swift-users@swift.org> wrote:
>
> 1. File those bugs and issues in radar, but lower your expectations a bit.
> That’s how I usually vent my frustrations. Just imagine the thousands they
> have to sift through...
> 2. Be constructive: if possible provide some workarounds, even sloppy ones -
> don’t be shy and engage discussion
> 3. Have a thick skin: welcome some constructive criticism
I can also add: challenge yourself to diagnose the problem. Even if you don’t
know the innards of the compiler or runtime. I’m a technology owner and help
support developers using it, and I find that many times people report bugs or
ask for help without having done all they could to analyze the problem.
Sometimes this is a dead end, but often you can uncover more information that
can greatly help the engineers fix the bug, and sometimes you can find
workarounds that get you unblocked.
Some advice based on stuff I see in my project’s forums:
— Read error messages carefully. Sometimes people report that “it won’t
compile” or “it crashed” and append a dump of the log, without noticing that
the log includes a message that pretty clearly identifies what they did wrong.
— Look for clues in crash logs / backtraces. Even if you don’t know how the
software is implemented or have the source code, just looking at the function
names in a backtrace or crash can give you clues about what it’s doing, which
might help you find workarounds.
— Try to boil a problem down to a simpler case. Ideally something you can do in
a playground.
— Learn common crash/error patterns. I can’t think of any Swift-specific ones
at the moment, but a super common Objective-C one is the crash in
`objc_msgsend`, which an experienced developer knows the program must have
messaged either a deallocated object, or a bogus object reference.
— Treat debugging as a science. Act like a scientist. Examine the evidence,
form hypotheses, invent experiments to test the hypotheses. “If this variable
is being clobbered, maybe it’s because this method is called re-entrantly? I
can add a flag to it to test for a re-entrant call…”
—Jens
_______________________________________________
swift-users mailing list
swift-users@swift.org
https://lists.swift.org/mailman/listinfo/swift-users