2008-02-08 20:19:31 +08:00
|
|
|
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.
|
|
|
|
|
2008-11-12 23:35:04 +08:00
|
|
|
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.
|
|
|
|
|
2008-02-08 20:19:31 +08:00
|
|
|
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.
|
|
|
|
|
2011-03-19 00:54:29 +08:00
|
|
|
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.
|
|
|
|
|
2008-02-08 20:19:31 +08:00
|
|
|
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"
|
2010-09-27 20:12:33 +08:00
|
|
|
default GDBSTUB_ON_TTYSM0
|
2008-02-08 20:19:31 +08:00
|
|
|
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
|
2011-03-19 00:54:30 +08:00
|
|
|
|
|
|
|
config KERNEL_DEBUGGER
|
|
|
|
def_bool y
|
2011-03-19 00:54:31 +08:00
|
|
|
depends on GDBSTUB || KGDB
|