menu "Kernel hacking"

source "lib/Kconfig.debug"

config DEBUG_STACKOVERFLOW
	bool "Check for stack overflows"
	depends on DEBUG_KERNEL

config DEBUG_DECOMPRESS_KERNEL
	bool "Using serial port during decompressing kernel"
	depends on DEBUG_KERNEL
	default n
	help
	  If you say Y here you will confirm the start and the end of
	  decompressing Linux seeing "Uncompressing Linux... " and
	  "Ok, booting the kernel.\n" on console.

config TEST_MISALIGNMENT_HANDLER
	bool "Run tests on the misalignment handler"
	depends on DEBUG_KERNEL
	default n
	help
	  If you say Y here the kernel will execute a list of misaligned memory
	  accesses to make sure the misalignment handler deals them with
	  correctly.  If it does not, the kernel will throw a BUG.

config KPROBES
	bool "Kprobes"
	depends on DEBUG_KERNEL
	help
	  Kprobes allows you to trap at almost any kernel address and
	  execute a callback function.  register_kprobe() establishes
	  a probepoint and specifies the callback.  Kprobes is useful
	  for kernel debugging, non-intrusive instrumentation and testing.
	  If in doubt, say "N".

config GDBSTUB
	bool "Remote GDB kernel debugging"
	depends on DEBUG_KERNEL && DEPRECATED
	select DEBUG_INFO
	select FRAME_POINTER
	help
	  If you say Y here, it will be possible to remotely debug the kernel
	  using gdb. This enlarges your kernel ELF image disk size by several
	  megabytes and requires a machine with more than 16 MB, better 32 MB
	  RAM to avoid excessive linking time. This is only useful for kernel
	  hackers. If unsure, say N.

	  This is deprecated in favour of KGDB and will be removed in a later
	  version.

config GDBSTUB_IMMEDIATE
	bool "Break into GDB stub immediately"
	depends on GDBSTUB
	help
	  If you say Y here, GDB stub will break into the program as soon as
	  possible, leaving the program counter at the beginning of
	  start_kernel() in init/main.c.

config GDBSTUB_ALLOW_SINGLE_STEP
	bool "Allow software single-stepping in GDB stub"
	depends on GDBSTUB && !SMP && !PREEMPT
	help
	  Allow GDB stub to perform software single-stepping through the
	  kernel.  This doesn't work very well on SMP or preemptible kernels as
	  it uses temporary breakpoints to emulate single-stepping.

config GDB_CONSOLE
	bool "Console output to GDB"
	depends on GDBSTUB
	help
	  If you are using GDB for remote debugging over a serial port and
	  would like kernel messages to be formatted into GDB $O packets so
	  that GDB prints them as program output, say 'Y'.

config GDBSTUB_DEBUGGING
	bool "Debug GDB stub by messages to serial port"
	depends on GDBSTUB
	help
	  This causes debugging messages to be displayed at various points
	  during execution of the GDB stub routines. Such messages will be
	  displayed on ttyS0 if that isn't the GDB stub's port, or ttySM0
	  otherwise.

config GDBSTUB_DEBUG_ENTRY
	bool "Debug GDB stub entry"
	depends on GDBSTUB_DEBUGGING
	help
	  This option causes information to be displayed about entry to or exit
	  from the main GDB stub routine.

config GDBSTUB_DEBUG_PROTOCOL
	bool "Debug GDB stub protocol"
	depends on GDBSTUB_DEBUGGING
	help
	  This option causes information to be displayed about the GDB remote
	  protocol messages generated exchanged with GDB.

config GDBSTUB_DEBUG_IO
	bool "Debug GDB stub I/O"
	depends on GDBSTUB_DEBUGGING
	help
	  This option causes information to be displayed about GDB stub's
	  low-level I/O.

config GDBSTUB_DEBUG_BREAKPOINT
	bool "Debug GDB stub breakpoint management"
	depends on GDBSTUB_DEBUGGING
	help
	  This option causes information to be displayed about GDB stub's
	  breakpoint management.

choice
	prompt "GDB stub port"
	default GDBSTUB_ON_TTYSM0
	depends on GDBSTUB
	help
	  Select the serial port used for GDB-stub.

config GDBSTUB_ON_TTYSM0
	bool "/dev/ttySM0 [SIF0]"
	depends on MN10300_TTYSM0
	select GDBSTUB_ON_TTYSMx

config GDBSTUB_ON_TTYSM1
	bool "/dev/ttySM1 [SIF1]"
	depends on MN10300_TTYSM1
	select GDBSTUB_ON_TTYSMx

config GDBSTUB_ON_TTYSM2
	bool "/dev/ttySM2 [SIF2]"
	depends on MN10300_TTYSM2
	select GDBSTUB_ON_TTYSMx

config GDBSTUB_ON_TTYS0
	bool "/dev/ttyS0"
	select GDBSTUB_ON_TTYSx

config GDBSTUB_ON_TTYS1
	bool "/dev/ttyS1"
	select GDBSTUB_ON_TTYSx

endchoice

config GDBSTUB_ON_TTYSMx
	bool
	depends on GDBSTUB_ON_TTYSM0 || GDBSTUB_ON_TTYSM1 || GDBSTUB_ON_TTYSM2
	default y

config GDBSTUB_ON_TTYSx
	bool
	depends on GDBSTUB_ON_TTYS0 || GDBSTUB_ON_TTYS1
	default y

endmenu

config KERNEL_DEBUGGER
	def_bool y
	depends on GDBSTUB || KGDB
