1menu "Kernel hacking"
2
3source "lib/Kconfig.debug"
4
5config DEBUG_STACKOVERFLOW
6	bool "Check for stack overflows"
7	depends on DEBUG_KERNEL
8
9config DEBUG_DECOMPRESS_KERNEL
10	bool "Using serial port during decompressing kernel"
11	depends on DEBUG_KERNEL
12	default n
13	help
14	  If you say Y here you will confirm the start and the end of
15	  decompressing Linux seeing "Uncompressing Linux... " and
16	  "Ok, booting the kernel.\n" on console.
17
18config TEST_MISALIGNMENT_HANDLER
19	bool "Run tests on the misalignment handler"
20	depends on DEBUG_KERNEL
21	default n
22	help
23	  If you say Y here the kernel will execute a list of misaligned memory
24	  accesses to make sure the misalignment handler deals them with
25	  correctly.  If it does not, the kernel will throw a BUG.
26
27config KPROBES
28	bool "Kprobes"
29	depends on DEBUG_KERNEL
30	help
31	  Kprobes allows you to trap at almost any kernel address and
32	  execute a callback function.  register_kprobe() establishes
33	  a probepoint and specifies the callback.  Kprobes is useful
34	  for kernel debugging, non-intrusive instrumentation and testing.
35	  If in doubt, say "N".
36
37config GDBSTUB
38	bool "Remote GDB kernel debugging"
39	depends on DEBUG_KERNEL && DEPRECATED
40	select DEBUG_INFO
41	select FRAME_POINTER
42	help
43	  If you say Y here, it will be possible to remotely debug the kernel
44	  using gdb. This enlarges your kernel ELF image disk size by several
45	  megabytes and requires a machine with more than 16 MB, better 32 MB
46	  RAM to avoid excessive linking time. This is only useful for kernel
47	  hackers. If unsure, say N.
48
49	  This is deprecated in favour of KGDB and will be removed in a later
50	  version.
51
52config GDBSTUB_IMMEDIATE
53	bool "Break into GDB stub immediately"
54	depends on GDBSTUB
55	help
56	  If you say Y here, GDB stub will break into the program as soon as
57	  possible, leaving the program counter at the beginning of
58	  start_kernel() in init/main.c.
59
60config GDBSTUB_ALLOW_SINGLE_STEP
61	bool "Allow software single-stepping in GDB stub"
62	depends on GDBSTUB && !SMP && !PREEMPT
63	help
64	  Allow GDB stub to perform software single-stepping through the
65	  kernel.  This doesn't work very well on SMP or preemptible kernels as
66	  it uses temporary breakpoints to emulate single-stepping.
67
68config GDB_CONSOLE
69	bool "Console output to GDB"
70	depends on GDBSTUB
71	help
72	  If you are using GDB for remote debugging over a serial port and
73	  would like kernel messages to be formatted into GDB $O packets so
74	  that GDB prints them as program output, say 'Y'.
75
76config GDBSTUB_DEBUGGING
77	bool "Debug GDB stub by messages to serial port"
78	depends on GDBSTUB
79	help
80	  This causes debugging messages to be displayed at various points
81	  during execution of the GDB stub routines. Such messages will be
82	  displayed on ttyS0 if that isn't the GDB stub's port, or ttySM0
83	  otherwise.
84
85config GDBSTUB_DEBUG_ENTRY
86	bool "Debug GDB stub entry"
87	depends on GDBSTUB_DEBUGGING
88	help
89	  This option causes information to be displayed about entry to or exit
90	  from the main GDB stub routine.
91
92config GDBSTUB_DEBUG_PROTOCOL
93	bool "Debug GDB stub protocol"
94	depends on GDBSTUB_DEBUGGING
95	help
96	  This option causes information to be displayed about the GDB remote
97	  protocol messages generated exchanged with GDB.
98
99config GDBSTUB_DEBUG_IO
100	bool "Debug GDB stub I/O"
101	depends on GDBSTUB_DEBUGGING
102	help
103	  This option causes information to be displayed about GDB stub's
104	  low-level I/O.
105
106config GDBSTUB_DEBUG_BREAKPOINT
107	bool "Debug GDB stub breakpoint management"
108	depends on GDBSTUB_DEBUGGING
109	help
110	  This option causes information to be displayed about GDB stub's
111	  breakpoint management.
112
113choice
114	prompt "GDB stub port"
115	default GDBSTUB_ON_TTYSM0
116	depends on GDBSTUB
117	help
118	  Select the serial port used for GDB-stub.
119
120config GDBSTUB_ON_TTYSM0
121	bool "/dev/ttySM0 [SIF0]"
122	depends on MN10300_TTYSM0
123	select GDBSTUB_ON_TTYSMx
124
125config GDBSTUB_ON_TTYSM1
126	bool "/dev/ttySM1 [SIF1]"
127	depends on MN10300_TTYSM1
128	select GDBSTUB_ON_TTYSMx
129
130config GDBSTUB_ON_TTYSM2
131	bool "/dev/ttySM2 [SIF2]"
132	depends on MN10300_TTYSM2
133	select GDBSTUB_ON_TTYSMx
134
135config GDBSTUB_ON_TTYS0
136	bool "/dev/ttyS0"
137	select GDBSTUB_ON_TTYSx
138
139config GDBSTUB_ON_TTYS1
140	bool "/dev/ttyS1"
141	select GDBSTUB_ON_TTYSx
142
143endchoice
144
145config GDBSTUB_ON_TTYSMx
146	bool
147	depends on GDBSTUB_ON_TTYSM0 || GDBSTUB_ON_TTYSM1 || GDBSTUB_ON_TTYSM2
148	default y
149
150config GDBSTUB_ON_TTYSx
151	bool
152	depends on GDBSTUB_ON_TTYS0 || GDBSTUB_ON_TTYS1
153	default y
154
155endmenu
156
157config KERNEL_DEBUGGER
158	def_bool y
159	depends on GDBSTUB || KGDB
160