From: Daniel Jacobowitz <dan@debian.org>
To: Larry McVoy <lm@work.bitmover.com>, linux-kernel@vger.kernel.org
Subject: Re: [linux-usb-devel] Re: [BK PATCH] USB changes for 2.5.34
Date: Sun, 15 Sep 2002 19:41:08 -0400 [thread overview]
Message-ID: <20020915234108.GA1348@nevyn.them.org> (raw)
In-Reply-To: <20020915162412.A17345@work.bitmover.com>
On Sun, Sep 15, 2002 at 04:24:12PM -0700, Larry McVoy wrote:
> On Sun, Sep 15, 2002 at 03:04:35PM -0400, Daniel Jacobowitz wrote:
> > Tracking this bug down took me about six hours. Someone more familiar
> > with that particular segment of code could, I assume, have done it more
> > quickly. One advantage of a debugger is that it's easier to look at
>
> I'm not speaking for Linus, but I wouldn't be surprised we share the
> same view on this one. As someone who maintains a fairly large source
> base I get nervous when people tell me they need a debugger to work on
> the code. Why? Because if you really need that it is EXTREMELY likely
> that you don't understand the code. If you don't understand the code
> then YOU SHOULDN'T BE CHANGING IT. It is infuriating to have a section
> of tricky code that used to work, you turn your back, only to find that
> someone made a "simple change" which seems to work but actually makes
> things worse and invariably seems to break the code in a far more
> subtle way.
>
> My position is that you either understand the code or you don't. Code
> that you don't understand is read only. Having a debugger show you some
> variables isn't going to make you understand the code at the level which
> is required in order to be making changes.
That's a circular argument. I use debuggers in order to understand
code _better_. And to understand how code that I do know interacts
with code that I don't know. I also rarely have the luxury of working in
source bases that I've got long intimate association with - about the
only code I can claim that for is GDB itself and it still surprises me.
Using a debugger I can pick up greatly improved understanding of what's
going on - both what is and what should be. And what has changed in it
recently, since I was last familiar with it, which was the problem
here.
> Does this mean I'm against debuggers? Not at all. But in 15 years of
> doing kernel work and 5 years of doing BK work the only thing I've ever
> used one for was to get a few variables printed out. And I've written
> a substantial chunk of a debugger years ago, it's not a question of lack
> of debugger knowledge. I just rarely find them useful.
Good for you; as I said, everyone operates differently. The number of
printing/thinking/rebooting cycles involved for me to work with a
debugger is much shorter than without.
> > Plus, in my experience the work model that BitKeeper encourages puts a
> > significant penalty on including unrelated patches in the tree while
> > you're debugging. It can be gotten around but it's exceptionally
> > awkward. Adding in KGDB means time spent merging it into my tree and
> > time spend merging it cleanly out when I'm done with it.
>
> Create a throwaway clone, merge in kdb, tag the tree with "baseline".
> Now hack away until you have a fix. If you never checked anything in
> after the baseline then "bk -r diffs -u" creates the patch for your
> bugfix. If you did, then diff against the baseline.
>
> If BK is awkward by comparison to diff and patch, something is wrong, it
> definitely has the ability to make things far more pleasant than you
> seem to be experiencing.
Perhaps I (yet again) need to spend a day learning more about the
depths of BitKeeper. The last time I did it all I found were BitKeeper
bugs, because the way I try to work with it appears to be contrary to
the way other people want to work with it.
I guess I just need to get more used to doing all of my development in
throwaway clones, and when it's absolutely perfect checking it into a
longer-lived tree via exporting a GNU patch and importing that.
The above model gets much more complicated when the development lasts
longer than a couple of hours, and you have to pull from another tree;
already, to upgrade my working trees I need to cascade three pulls -
with two sets of resolves if Ingo's been changing CLONE_ flags on me
again :)
--
Daniel Jacobowitz
MontaVista Software Debian GNU/Linux Developer
next prev parent reply other threads:[~2002-09-15 23:35 UTC|newest]
Thread overview: 99+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-09-09 22:17 [BK PATCH] USB changes for 2.5.34 Greg KH
2002-09-10 0:17 ` Linus Torvalds
2002-09-10 0:19 ` Greg KH
2002-09-10 0:30 ` Linus Torvalds
2002-09-10 0:40 ` [linux-usb-devel] " Alan Cox
2002-09-10 1:41 ` Linus Torvalds
2002-09-10 1:48 ` Linus Torvalds
2002-09-10 10:23 ` Andries Brouwer
2002-09-10 0:35 ` Nicholas Miell
2002-09-10 1:01 ` [patch] dump_stack(): arch-neutral stack trace Andrew Morton
2002-09-15 4:34 ` Daniel Phillips
2002-09-15 4:51 ` Andrew Morton
2002-09-10 1:27 ` [BK PATCH] USB changes for 2.5.34 Linus Torvalds
2002-09-10 2:07 ` Matthew Dharm
2002-09-10 2:49 ` Linus Torvalds
2002-09-10 2:59 ` Linus Torvalds
2002-09-10 16:32 ` [linux-usb-devel] " David Brownell
2002-09-10 16:51 ` Linus Torvalds
2002-09-10 17:16 ` Jeff Garzik
2002-09-10 18:16 ` David S. Miller
2002-09-10 18:40 ` Linus Torvalds
2002-09-10 18:48 ` Jeff Garzik
2002-09-10 19:31 ` David S. Miller
2002-09-10 19:32 ` Oliver Xymoron
2002-09-10 19:38 ` Linus Torvalds
2002-09-10 19:43 ` Jeff Garzik
2002-09-10 21:52 ` Bill Davidsen
2002-09-10 22:02 ` Jeff Garzik
2002-09-10 18:44 ` Alan Cox
2002-09-10 19:03 ` Linus Torvalds
2002-09-10 19:27 ` Rik van Riel
2002-09-10 20:18 ` Alan Cox
2002-09-10 22:00 ` David Woodhouse
2002-09-10 22:23 ` Alan Cox
2002-09-10 22:26 ` David Woodhouse
2002-09-10 23:01 ` Alan Cox
2002-09-10 19:29 ` David S. Miller
2002-09-15 5:10 ` Daniel Phillips
2002-09-15 5:33 ` Daniel Berlin
2002-09-15 16:41 ` Daniel Phillips
2002-09-16 0:32 ` Horst von Brand
2002-09-15 6:07 ` Pete Zaitcev
2002-09-15 7:00 ` Andrew Morton
2002-09-15 20:05 ` David Woodhouse
2002-09-15 14:53 ` Daniel Phillips
2002-09-15 18:23 ` Pete Zaitcev
2002-09-15 18:34 ` Jeff Garzik
2002-09-16 0:55 ` Larry McVoy
2002-09-15 21:35 ` Rob Landley
2002-09-16 3:00 ` Larry McVoy
2002-09-16 3:08 ` Daniel Phillips
2002-09-16 11:16 ` Henning P. Schmiedehausen
2002-09-16 18:35 ` Thunder from the hill
2002-09-16 18:45 ` Daniel Phillips
2002-09-16 19:36 ` Thunder from the hill
2002-09-16 19:40 ` Daniel Phillips
2002-09-16 8:50 ` Ian Molton
2002-09-16 9:37 ` Rob Landley
2002-09-15 18:06 ` Linus Torvalds
2002-09-15 18:36 ` Roman Zippel
2002-09-15 19:04 ` Daniel Jacobowitz
2002-09-15 19:43 ` Andrew Morton
2002-09-15 19:43 ` Daniel Phillips
2002-09-15 23:24 ` Larry McVoy
2002-09-15 23:41 ` Daniel Jacobowitz [this message]
2002-09-15 23:52 ` Larry McVoy
2002-09-16 0:01 ` Robert Love
2002-09-16 1:29 ` Alan Cox
2002-09-16 2:13 ` Larry McVoy
2002-09-16 11:05 ` Henning P. Schmiedehausen
2002-09-16 14:05 ` Rogier Wolff
2002-09-16 16:24 ` Marco Colombo
2002-09-16 0:44 ` Daniel Phillips
2002-09-16 1:23 ` Alan Cox
2002-09-15 19:07 ` Daniel Phillips
2002-09-16 9:06 ` Jens Axboe
2002-09-16 14:14 ` David Woodhouse
2002-09-16 14:53 ` Jens Axboe
2002-09-16 15:15 ` Daniel Phillips
2002-09-16 15:59 ` kernel debuggers was [Re: [linux-usb-devel] Re: [BK PATCH] USB changes for 2.5.34] Soewono Effendi
2002-09-15 19:08 ` [linux-usb-devel] Re: [BK PATCH] USB changes for 2.5.34 Linus Torvalds
2002-09-15 19:10 ` Daniel Phillips
2002-09-15 19:26 ` Linus Torvalds
2002-09-15 19:32 ` Daniel Jacobowitz
2002-09-15 19:48 ` Daniel Phillips
2002-09-16 4:59 ` Jeff Dike
2002-09-16 4:05 ` Daniel Phillips
2002-09-16 4:55 ` Jeff Dike
2002-09-15 19:35 ` Daniel Phillips
2002-09-16 4:51 ` Jeff Dike
2002-09-16 15:29 ` Oliver Xymoron
2002-09-18 0:33 ` Rusty Russell
2002-09-18 0:46 ` Linus Torvalds
2002-09-18 0:50 ` Daniel Phillips
2002-09-18 1:16 ` Rik van Riel
2002-09-15 13:54 ` Rogier Wolff
2002-09-15 5:01 ` Daniel Phillips
2002-09-10 16:46 ` Thunder from the hill
2002-09-10 16:56 ` Vojtech Pavlik
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20020915234108.GA1348@nevyn.them.org \
--to=dan@debian.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lm@work.bitmover.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.