167 lines · plain
1# SPDX-License-Identifier: GPL-2.0-only2 3config HAVE_ARCH_KGDB4 bool5 6# set if architecture has the its kgdb_arch_handle_qxfer_pkt7# function to enable gdb stub to address XML packet sent from GDB.8config HAVE_ARCH_KGDB_QXFER_PKT9 bool10 11menuconfig KGDB12 bool "KGDB: kernel debugger"13 depends on HAVE_ARCH_KGDB14 depends on DEBUG_KERNEL15 help16 If you say Y here, it will be possible to remotely debug the17 kernel using gdb. It is recommended but not required, that18 you also turn on the kernel config option19 CONFIG_FRAME_POINTER to aid in producing more reliable stack20 backtraces in the external debugger. Documentation of21 kernel debugger is available at http://kgdb.sourceforge.net22 as well as in Documentation/dev-tools/kgdb.rst. If23 unsure, say N.24 25if KGDB26 27config KGDB_HONOUR_BLOCKLIST28 bool "KGDB: use kprobe blocklist to prohibit unsafe breakpoints"29 depends on HAVE_KPROBES30 depends on MODULES31 select KPROBES32 default y33 help34 If set to Y the debug core will use the kprobe blocklist to35 identify symbols where it is unsafe to set breakpoints.36 In particular this disallows instrumentation of functions37 called during debug trap handling and thus makes it very38 difficult to inadvertently provoke recursive trap handling.39 40 If unsure, say Y.41 42config KGDB_SERIAL_CONSOLE43 tristate "KGDB: use kgdb over the serial console"44 select CONSOLE_POLL45 select MAGIC_SYSRQ46 depends on TTY && VT47 default y48 help49 Share a serial console with kgdb. Sysrq-g must be used50 to break in initially.51 52config KGDB_TESTS53 bool "KGDB: internal test suite"54 default n55 help56 This is a kgdb I/O module specifically designed to test57 kgdb's internal functions. This kgdb I/O module is58 intended to for the development of new kgdb stubs59 as well as regression testing the kgdb internals.60 See the drivers/misc/kgdbts.c for the details about61 the tests. The most basic of this I/O module is to boot62 a kernel boot arguments "kgdbwait kgdbts=V1F100"63 64config KGDB_TESTS_ON_BOOT65 bool "KGDB: Run tests on boot"66 depends on KGDB_TESTS67 default n68 help69 Run the kgdb tests on boot up automatically without the need70 to pass in a kernel parameter71 72config KGDB_TESTS_BOOT_STRING73 string "KGDB: which internal kgdb tests to run"74 depends on KGDB_TESTS_ON_BOOT75 default "V1F100"76 help77 This is the command string to send the kgdb test suite on78 boot. See the drivers/misc/kgdbts.c for detailed79 information about other strings you could use beyond the80 default of V1F100.81 82config KGDB_LOW_LEVEL_TRAP83 bool "KGDB: Allow debugging with traps in notifiers"84 depends on X86 || MIPS85 default n86 help87 This will add an extra call back to kgdb for the breakpoint88 exception handler which will allow kgdb to step through a89 notify handler.90 91config KGDB_KDB92 bool "KGDB_KDB: include kdb frontend for kgdb"93 default n94 help95 KDB frontend for kernel96 97config KDB_DEFAULT_ENABLE98 hex "KDB: Select kdb command functions to be enabled by default"99 depends on KGDB_KDB100 default 0x1101 help102 Specifiers which kdb commands are enabled by default. This may103 be set to 1 or 0 to enable all commands or disable almost all104 commands.105 106 Alternatively the following bitmask applies:107 108 0x0002 - allow arbitrary reads from memory and symbol lookup109 0x0004 - allow arbitrary writes to memory110 0x0008 - allow current register state to be inspected111 0x0010 - allow current register state to be modified112 0x0020 - allow passive inspection (backtrace, process list, lsmod)113 0x0040 - allow flow control management (breakpoint, single step)114 0x0080 - enable signalling of processes115 0x0100 - allow machine to be rebooted116 117 The config option merely sets the default at boot time. Both118 issuing 'echo X > /sys/module/kdb/parameters/cmd_enable' or119 setting with kdb.cmd_enable=X kernel command line option will120 override the default settings.121 122config KDB_KEYBOARD123 bool "KGDB_KDB: keyboard as input device"124 depends on VT && KGDB_KDB && !PARISC125 depends on HAS_IOPORT126 default n127 help128 KDB can use a PS/2 type keyboard for an input device129 130config KDB_CONTINUE_CATASTROPHIC131 int "KDB: continue after catastrophic errors"132 depends on KGDB_KDB133 default "0"134 help135 This integer controls the behaviour of kdb when the kernel gets a136 catastrophic error, i.e. for a panic or oops.137 When KDB is active and a catastrophic error occurs, nothing extra138 will happen until you type 'go'.139 CONFIG_KDB_CONTINUE_CATASTROPHIC == 0 (default). The first time140 you type 'go', you will be warned by kdb. The secend time you type141 'go', KDB tries to continue. No guarantees that the142 kernel is still usable in this situation.143 CONFIG_KDB_CONTINUE_CATASTROPHIC == 1. KDB tries to continue.144 No guarantees that the kernel is still usable in this situation.145 CONFIG_KDB_CONTINUE_CATASTROPHIC == 2. KDB forces a reboot.146 If you are not sure, say 0.147 148config ARCH_HAS_EARLY_DEBUG149 bool150 default n151 help152 If an architecture can definitely handle entering the debugger153 when early_param's are parsed then it select this config.154 Otherwise, if "kgdbwait" is passed on the kernel command line it155 won't actually be processed until dbg_late_init() just after the156 call to kgdb_arch_late() is made.157 158 NOTE: Even if this isn't selected by an architecture we will159 still try to register kgdb to handle breakpoints and crashes160 when early_param's are parsed, we just won't act on the161 "kgdbwait" parameter until dbg_late_init(). If you get a162 crash and try to drop into kgdb somewhere between these two163 places you might or might not end up being able to use kgdb164 depending on exactly how far along the architecture has initted.165 166endif # KGDB167