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 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
	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.

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 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_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
