forked from Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
165 lines
5.6 KiB
165 lines
5.6 KiB
# SPDX-License-Identifier: GPL-2.0-only |
|
|
|
config HAVE_ARCH_KGDB |
|
bool |
|
|
|
# set if architecture has the its kgdb_arch_handle_qxfer_pkt |
|
# function to enable gdb stub to address XML packet sent from GDB. |
|
config HAVE_ARCH_KGDB_QXFER_PKT |
|
bool |
|
|
|
menuconfig KGDB |
|
bool "KGDB: kernel debugger" |
|
depends on HAVE_ARCH_KGDB |
|
depends on DEBUG_KERNEL |
|
help |
|
If you say Y here, it will be possible to remotely debug the |
|
kernel using gdb. It is recommended but not required, that |
|
you also turn on the kernel config option |
|
CONFIG_FRAME_POINTER to aid in producing more reliable stack |
|
backtraces in the external debugger. Documentation of |
|
kernel debugger is available at http://kgdb.sourceforge.net |
|
as well as in Documentation/dev-tools/kgdb.rst. If |
|
unsure, say N. |
|
|
|
if KGDB |
|
|
|
config KGDB_HONOUR_BLOCKLIST |
|
bool "KGDB: use kprobe blocklist to prohibit unsafe breakpoints" |
|
depends on HAVE_KPROBES |
|
depends on MODULES |
|
select KPROBES |
|
default y |
|
help |
|
If set to Y the debug core will use the kprobe blocklist to |
|
identify symbols where it is unsafe to set breakpoints. |
|
In particular this disallows instrumentation of functions |
|
called during debug trap handling and thus makes it very |
|
difficult to inadvertently provoke recursive trap handling. |
|
|
|
If unsure, say Y. |
|
|
|
config KGDB_SERIAL_CONSOLE |
|
tristate "KGDB: use kgdb over the serial console" |
|
select CONSOLE_POLL |
|
select MAGIC_SYSRQ |
|
depends on TTY && HW_CONSOLE |
|
default y |
|
help |
|
Share a serial console with kgdb. Sysrq-g must be used |
|
to break in initially. |
|
|
|
config KGDB_TESTS |
|
bool "KGDB: internal test suite" |
|
default n |
|
help |
|
This is a kgdb I/O module specifically designed to test |
|
kgdb's internal functions. This kgdb I/O module is |
|
intended to for the development of new kgdb stubs |
|
as well as regression testing the kgdb internals. |
|
See the drivers/misc/kgdbts.c for the details about |
|
the tests. The most basic of this I/O module is to boot |
|
a kernel boot arguments "kgdbwait kgdbts=V1F100" |
|
|
|
config KGDB_TESTS_ON_BOOT |
|
bool "KGDB: Run tests on boot" |
|
depends on KGDB_TESTS |
|
default n |
|
help |
|
Run the kgdb tests on boot up automatically without the need |
|
to pass in a kernel parameter |
|
|
|
config KGDB_TESTS_BOOT_STRING |
|
string "KGDB: which internal kgdb tests to run" |
|
depends on KGDB_TESTS_ON_BOOT |
|
default "V1F100" |
|
help |
|
This is the command string to send the kgdb test suite on |
|
boot. See the drivers/misc/kgdbts.c for detailed |
|
information about other strings you could use beyond the |
|
default of V1F100. |
|
|
|
config KGDB_LOW_LEVEL_TRAP |
|
bool "KGDB: Allow debugging with traps in notifiers" |
|
depends on X86 || MIPS |
|
default n |
|
help |
|
This will add an extra call back to kgdb for the breakpoint |
|
exception handler which will allow kgdb to step through a |
|
notify handler. |
|
|
|
config KGDB_KDB |
|
bool "KGDB_KDB: include kdb frontend for kgdb" |
|
default n |
|
help |
|
KDB frontend for kernel |
|
|
|
config KDB_DEFAULT_ENABLE |
|
hex "KDB: Select kdb command functions to be enabled by default" |
|
depends on KGDB_KDB |
|
default 0x1 |
|
help |
|
Specifiers which kdb commands are enabled by default. This may |
|
be set to 1 or 0 to enable all commands or disable almost all |
|
commands. |
|
|
|
Alternatively the following bitmask applies: |
|
|
|
0x0002 - allow arbitrary reads from memory and symbol lookup |
|
0x0004 - allow arbitrary writes to memory |
|
0x0008 - allow current register state to be inspected |
|
0x0010 - allow current register state to be modified |
|
0x0020 - allow passive inspection (backtrace, process list, lsmod) |
|
0x0040 - allow flow control management (breakpoint, single step) |
|
0x0080 - enable signalling of processes |
|
0x0100 - allow machine to be rebooted |
|
|
|
The config option merely sets the default at boot time. Both |
|
issuing 'echo X > /sys/module/kdb/parameters/cmd_enable' or |
|
setting with kdb.cmd_enable=X kernel command line option will |
|
override the default settings. |
|
|
|
config KDB_KEYBOARD |
|
bool "KGDB_KDB: keyboard as input device" |
|
depends on VT && KGDB_KDB |
|
default n |
|
help |
|
KDB can use a PS/2 type keyboard for an input device |
|
|
|
config KDB_CONTINUE_CATASTROPHIC |
|
int "KDB: continue after catastrophic errors" |
|
depends on KGDB_KDB |
|
default "0" |
|
help |
|
This integer controls the behaviour of kdb when the kernel gets a |
|
catastrophic error, i.e. for a panic or oops. |
|
When KDB is active and a catastrophic error occurs, nothing extra |
|
will happen until you type 'go'. |
|
CONFIG_KDB_CONTINUE_CATASTROPHIC == 0 (default). The first time |
|
you type 'go', you will be warned by kdb. The secend time you type |
|
'go', KDB tries to continue. No guarantees that the |
|
kernel is still usable in this situation. |
|
CONFIG_KDB_CONTINUE_CATASTROPHIC == 1. KDB tries to continue. |
|
No guarantees that the kernel is still usable in this situation. |
|
CONFIG_KDB_CONTINUE_CATASTROPHIC == 2. KDB forces a reboot. |
|
If you are not sure, say 0. |
|
|
|
config ARCH_HAS_EARLY_DEBUG |
|
bool |
|
default n |
|
help |
|
If an architecture can definitely handle entering the debugger |
|
when early_param's are parsed then it select this config. |
|
Otherwise, if "kgdbwait" is passed on the kernel command line it |
|
won't actually be processed until dbg_late_init() just after the |
|
call to kgdb_arch_late() is made. |
|
|
|
NOTE: Even if this isn't selected by an architecture we will |
|
still try to register kgdb to handle breakpoints and crashes |
|
when early_param's are parsed, we just won't act on the |
|
"kgdbwait" parameter until dbg_late_init(). If you get a |
|
crash and try to drop into kgdb somewhere between these two |
|
places you might or might not end up being able to use kgdb |
|
depending on exactly how far along the architecture has initted. |
|
|
|
endif # KGDB
|
|
|