Right, I almost never single-step either. Probably, my favorite technique
is to replace BUG() with asm("int3").
> Also as a replacement for printk/rebuild/reboot.
Yup. I still use a lot of printks, but they are mostly for tracing, not
triangulation.
> Also for inspecting ad-hoc instrumentation: just add `some_global_int++;'
> and then take a look at its value - much quicker than exposing it via /proc.
Yep, I noticed you doing that, very useful, I picked up that technique
from you. Then I made a little all-purpose proc interface for myself
to make it easy to export my stats structures, which is kind of nice too,
because then you can put a patch out with the hooks still in it, making
it easier for others to participate in the analysis.
> It's also very good to have kgdb on hand when you happen to hit a
> really rare bug - I hit a weirdo request queue corruption thing the
> other day, an hour into a `dbench 1024' run. Was able to get a
> decent amount of information. Heaven knows how long it would take
> to make that bug trigger a second time...
Yes, this last one applies equally to kdb, but since I'm not relying
on kdb at the moment, best to leave the lid on that can of flamable
material.
-- Daniel - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/