sh: Conditionalize the code dumper on CONFIG_DUMP_CODE.
authorPaul Mundt <lethal@linux-sh.org>
Wed, 17 Dec 2008 06:56:06 +0000 (15:56 +0900)
committerPaul Mundt <lethal@linux-sh.org>
Mon, 22 Dec 2008 09:44:47 +0000 (18:44 +0900)
We don't really want this enabled by default, but it is still quite
useful for debugging. So, make it conditional and leave it off by
default.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
arch/sh/Kconfig.debug
arch/sh/include/asm/processor_32.h
arch/sh/kernel/Makefile_32

index 0dc340d5795ef13a80a9d2c420bfe530ed4bf15a..0d62681f72a092830134b0d5a80186fede6e59e0 100644 (file)
@@ -98,6 +98,18 @@ config IRQSTACKS
          for handling hard and soft interrupts.  This can help avoid
          overflowing the process kernel stacks.
 
+config DUMP_CODE
+       bool "Show disassembly of nearby code in register dumps"
+       depends on DEBUG_KERNEL && SUPERH32
+       default y if DEBUG_BUGVERBOSE
+       default n
+       help
+         This prints out a code trace of the instructions leading up to
+         the faulting instruction as a debugging aid. As this does grow
+         the kernel in size a bit, most users will want to say N here.
+
+         Those looking for more verbose debugging output should say Y.
+
 config SH_NO_BSS_INIT
        bool "Avoid zeroing BSS (to speed-up startup on suitable platforms)"
        depends on DEBUG_KERNEL
index 2bfb7353493a392131c818d89079ecb1d420318f..d79063c5eb9c1ebb531425dda142c031115cfca2 100644 (file)
@@ -175,7 +175,15 @@ static __inline__ void enable_fpu(void)
 
 void show_trace(struct task_struct *tsk, unsigned long *sp,
                struct pt_regs *regs);
+
+#ifdef CONFIG_DUMP_CODE
 void show_code(struct pt_regs *regs);
+#else
+static inline void show_code(struct pt_regs *regs)
+{
+}
+#endif
+
 extern unsigned long get_wchan(struct task_struct *p);
 
 #define KSTK_EIP(tsk)  (task_pt_regs(tsk)->pc)
index 3c975ab45590d386ac9a205956c7d9e2cc80bd43..2e1b86e16ab54184d5d99a720e1b76e8c88adadb 100644 (file)
@@ -9,7 +9,7 @@ ifdef CONFIG_FUNCTION_TRACER
 CFLAGS_REMOVE_ftrace.o = -pg
 endif
 
-obj-y  := debugtraps.o disassemble.o idle.o io.o io_generic.o irq.o    \
+obj-y  := debugtraps.o idle.o io.o io_generic.o irq.o                  \
           machvec.o process_32.o ptrace_32.o setup.o signal_32.o       \
           sys_sh.o sys_sh32.o syscalls_32.o time_32.o topology.o       \
           traps.o traps_32.o
@@ -29,5 +29,6 @@ obj-$(CONFIG_IO_TRAPPED)      += io_trapped.o
 obj-$(CONFIG_KPROBES)          += kprobes.o
 obj-$(CONFIG_GENERIC_GPIO)     += gpio.o
 obj-$(CONFIG_DYNAMIC_FTRACE)   += ftrace.o
+obj-$(CONFIG_DUMP_CODE)                += disassemble.o
 
 EXTRA_CFLAGS += -Werror