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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox