浏览代码

sh: Conditionalize the code dumper on CONFIG_DUMP_CODE.

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>
Paul Mundt 16 年之前
父节点
当前提交
5d2685d0b3
共有 3 个文件被更改,包括 22 次插入1 次删除
  1. 12 0
      arch/sh/Kconfig.debug
  2. 8 0
      arch/sh/include/asm/processor_32.h
  3. 2 1
      arch/sh/kernel/Makefile_32

+ 12 - 0
arch/sh/Kconfig.debug

@@ -98,6 +98,18 @@ config IRQSTACKS
 	  for handling hard and soft interrupts.  This can help avoid
 	  for handling hard and soft interrupts.  This can help avoid
 	  overflowing the process kernel stacks.
 	  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
 config SH_NO_BSS_INIT
 	bool "Avoid zeroing BSS (to speed-up startup on suitable platforms)"
 	bool "Avoid zeroing BSS (to speed-up startup on suitable platforms)"
 	depends on DEBUG_KERNEL
 	depends on DEBUG_KERNEL

+ 8 - 0
arch/sh/include/asm/processor_32.h

@@ -175,7 +175,15 @@ static __inline__ void enable_fpu(void)
 
 
 void show_trace(struct task_struct *tsk, unsigned long *sp,
 void show_trace(struct task_struct *tsk, unsigned long *sp,
 		struct pt_regs *regs);
 		struct pt_regs *regs);
+
+#ifdef CONFIG_DUMP_CODE
 void show_code(struct pt_regs *regs);
 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);
 extern unsigned long get_wchan(struct task_struct *p);
 
 
 #define KSTK_EIP(tsk)  (task_pt_regs(tsk)->pc)
 #define KSTK_EIP(tsk)  (task_pt_regs(tsk)->pc)

+ 2 - 1
arch/sh/kernel/Makefile_32

@@ -9,7 +9,7 @@ ifdef CONFIG_FUNCTION_TRACER
 CFLAGS_REMOVE_ftrace.o = -pg
 CFLAGS_REMOVE_ftrace.o = -pg
 endif
 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	\
 	   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	\
 	   sys_sh.o sys_sh32.o syscalls_32.o time_32.o topology.o	\
 	   traps.o traps_32.o
 	   traps.o traps_32.o
@@ -29,5 +29,6 @@ obj-$(CONFIG_IO_TRAPPED)	+= io_trapped.o
 obj-$(CONFIG_KPROBES)		+= kprobes.o
 obj-$(CONFIG_KPROBES)		+= kprobes.o
 obj-$(CONFIG_GENERIC_GPIO)	+= gpio.o
 obj-$(CONFIG_GENERIC_GPIO)	+= gpio.o
 obj-$(CONFIG_DYNAMIC_FTRACE)	+= ftrace.o
 obj-$(CONFIG_DYNAMIC_FTRACE)	+= ftrace.o
+obj-$(CONFIG_DUMP_CODE)		+= disassemble.o
 
 
 EXTRA_CFLAGS += -Werror
 EXTRA_CFLAGS += -Werror