silly [< >] and other excess

Christian Gennerat
2000-11-22T14:13:18Z

Andries.Brouwer@cwi.nl a écrit :

> I also left something else
> that always annoyed me: valuable screen space (on a 24x80 vt)
> is lost by these silly [< >] around addresses in an Oops.
> They provide no information at all, but on the other hand
> cause loss of information because these lines no longer
> fit in 80 columns causing line wrap and the loss of the
> top of the Oops.]
>

What a good idea!
Moreover, there is another problem in Oops:
the dumped stack is limited to 3 or 4 lines to prevent loss of information
but the call trace is unlimited and can loose all information,
and sometimes is printing forever!
--- arch/i386/kernel/traps.c.orig Mon Oct 2 20:57:01 2000
+++ arch/i386/kernel/traps.c Sun Nov 5 14:33:52 2000
@@ -142,11 +142,12 @@
* out the call path that was taken.
*/
if (((addr >= (unsigned long) &_stext) &&
+ (i<32) &&
(addr <= (unsigned long) &_etext)) ||
((addr >= module_start) && (addr <= module_end))) {
if (i && ((i % 8) == 0))
printk("\n ");
- printk("[<%08lx>] ", addr);
+ printk("%08lx ", addr);
i++;
}
}

And do not scroll the screen after the last printed line!

--- kernel/panic.c.orig Tue Jun 20 23:32:27 2000
+++ kernel/panic.c Sun Nov 5 07:53:04 2000
@@ -56,7 +56,7 @@
va_end(args);
printk(KERN_EMERG "Kernel panic: %s\n",buf);
if (in_interrupt())
- printk(KERN_EMERG "In interrupt handler - not syncing\n");
+ printk(KERN_EMERG "In interrupt handler - not syncing");
else if (!current->pid)
printk(KERN_EMERG "In idle task - not syncing\n");
else