Compress stack unwinder output

From: Dave Jones
Date: Fri Oct 06 2006 - 17:54:32 EST


The unwinder has some extra newlines, which eat up loads of screen
space when it spews. (See https://bugzilla.redhat.com/bugzilla/attachment.cgi?id=137900
for a nasty example).

warning_symbol-> and warning-> already printk a newline, so don't add one
in the strings passed to them.

Signed-off-by: Dave Jones <davej@xxxxxxxxxx>

--- linux-2.6.18.noarch/arch/x86_64/kernel/traps.c~ 2006-10-06 17:42:47.000000000 -0400
+++ linux-2.6.18.noarch/arch/x86_64/kernel/traps.c 2006-10-06 17:47:23.000000000 -0400
@@ -289,21 +289,21 @@ void dump_trace(struct task_struct *tsk,
}
if (unw_ret > 0) {
if (call_trace == 1 && !arch_unw_user_mode(&info)) {
- ops->warning_symbol(data, "DWARF2 unwinder stuck at %s\n",
+ ops->warning_symbol(data, "DWARF2 unwinder stuck at %s",
UNW_PC(&info));
if ((long)UNW_SP(&info) < 0) {
- ops->warning(data, "Leftover inexact backtrace:\n");
+ ops->warning(data, "Leftover inexact backtrace:");
stack = (unsigned long *)UNW_SP(&info);
if (!stack)
return;
} else
- ops->warning(data, "Full inexact backtrace again:\n");
+ ops->warning(data, "Full inexact backtrace again:");
} else if (call_trace >= 1)
return;
else
- ops->warning(data, "Full inexact backtrace again:\n");
+ ops->warning(data, "Full inexact backtrace again:");
} else
- ops->warning(data, "Inexact backtrace:\n");
+ ops->warning(data, "Inexact backtrace:");
}
if (!stack) {
unsigned long dummy;
--- linux-2.6.18.noarch/arch/i386/kernel/traps.c~ 2006-10-06 17:47:28.000000000 -0400
+++ linux-2.6.18.noarch/arch/i386/kernel/traps.c 2006-10-06 17:47:45.000000000 -0400
@@ -194,22 +194,22 @@ void dump_trace(struct task_struct *task
}
if (unw_ret > 0) {
if (call_trace == 1 && !arch_unw_user_mode(&info)) {
- ops->warning_symbol(data, "DWARF2 unwinder stuck at %s\n",
+ ops->warning_symbol(data, "DWARF2 unwinder stuck at %s",
UNW_PC(&info));
if (UNW_SP(&info) >= PAGE_OFFSET) {
- ops->warning(data, "Leftover inexact backtrace:\n");
+ ops->warning(data, "Leftover inexact backtrace:");
stack = (void *)UNW_SP(&info);
if (!stack)
return;
ebp = UNW_FP(&info);
} else
- ops->warning(data, "Full inexact backtrace again:\n");
+ ops->warning(data, "Full inexact backtrace again:");
} else if (call_trace >= 1)
return;
else
- ops->warning(data, "Full inexact backtrace again:\n");
+ ops->warning(data, "Full inexact backtrace again:");
} else
- ops->warning(data, "Inexact backtrace:\n");
+ ops->warning(data, "Inexact backtrace:");
}
if (!stack) {
unsigned long dummy;
--
http://www.codemonkey.org.uk
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/