1# SPDX-License-Identifier: GPL-2.0-only 2 3config HAVE_ARCH_KGDB 4 bool 5 6menuconfig KGDB 7 bool "KGDB: kernel debugger" 8 depends on HAVE_ARCH_KGDB 9 depends on DEBUG_KERNEL 10 help 11 If you say Y here, it will be possible to remotely debug the 12 kernel using gdb. It is recommended but not required, that 13 you also turn on the kernel config option 14 CONFIG_FRAME_POINTER to aid in producing more reliable stack 15 backtraces in the external debugger. Documentation of 16 kernel debugger is available at http://kgdb.sourceforge.net 17 as well as in Documentation/dev-tools/kgdb.rst. If 18 unsure, say N. 19 20if KGDB 21 22config KGDB_SERIAL_CONSOLE 23 tristate "KGDB: use kgdb over the serial console" 24 select CONSOLE_POLL 25 select MAGIC_SYSRQ 26 depends on TTY && HW_CONSOLE 27 default y 28 help 29 Share a serial console with kgdb. Sysrq-g must be used 30 to break in initially. 31 32config KGDB_TESTS 33 bool "KGDB: internal test suite" 34 default n 35 help 36 This is a kgdb I/O module specifically designed to test 37 kgdb's internal functions. This kgdb I/O module is 38 intended to for the development of new kgdb stubs 39 as well as regression testing the kgdb internals. 40 See the drivers/misc/kgdbts.c for the details about 41 the tests. The most basic of this I/O module is to boot 42 a kernel boot arguments "kgdbwait kgdbts=V1F100" 43 44config KGDB_TESTS_ON_BOOT 45 bool "KGDB: Run tests on boot" 46 depends on KGDB_TESTS 47 default n 48 help 49 Run the kgdb tests on boot up automatically without the need 50 to pass in a kernel parameter 51 52config KGDB_TESTS_BOOT_STRING 53 string "KGDB: which internal kgdb tests to run" 54 depends on KGDB_TESTS_ON_BOOT 55 default "V1F100" 56 help 57 This is the command string to send the kgdb test suite on 58 boot. See the drivers/misc/kgdbts.c for detailed 59 information about other strings you could use beyond the 60 default of V1F100. 61 62config KGDB_LOW_LEVEL_TRAP 63 bool "KGDB: Allow debugging with traps in notifiers" 64 depends on X86 || MIPS 65 default n 66 help 67 This will add an extra call back to kgdb for the breakpoint 68 exception handler which will allow kgdb to step through a 69 notify handler. 70 71config KGDB_KDB 72 bool "KGDB_KDB: include kdb frontend for kgdb" 73 default n 74 help 75 KDB frontend for kernel 76 77config KDB_DEFAULT_ENABLE 78 hex "KDB: Select kdb command functions to be enabled by default" 79 depends on KGDB_KDB 80 default 0x1 81 help 82 Specifiers which kdb commands are enabled by default. This may 83 be set to 1 or 0 to enable all commands or disable almost all 84 commands. 85 86 Alternatively the following bitmask applies: 87 88 0x0002 - allow arbitrary reads from memory and symbol lookup 89 0x0004 - allow arbitrary writes to memory 90 0x0008 - allow current register state to be inspected 91 0x0010 - allow current register state to be modified 92 0x0020 - allow passive inspection (backtrace, process list, lsmod) 93 0x0040 - allow flow control management (breakpoint, single step) 94 0x0080 - enable signalling of processes 95 0x0100 - allow machine to be rebooted 96 97 The config option merely sets the default at boot time. Both 98 issuing 'echo X > /sys/module/kdb/parameters/cmd_enable' or 99 setting with kdb.cmd_enable=X kernel command line option will 100 override the default settings. 101 102config KDB_KEYBOARD 103 bool "KGDB_KDB: keyboard as input device" 104 depends on VT && KGDB_KDB 105 default n 106 help 107 KDB can use a PS/2 type keyboard for an input device 108 109config KDB_CONTINUE_CATASTROPHIC 110 int "KDB: continue after catastrophic errors" 111 depends on KGDB_KDB 112 default "0" 113 help 114 This integer controls the behaviour of kdb when the kernel gets a 115 catastrophic error, i.e. for a panic or oops. 116 When KDB is active and a catastrophic error occurs, nothing extra 117 will happen until you type 'go'. 118 CONFIG_KDB_CONTINUE_CATASTROPHIC == 0 (default). The first time 119 you type 'go', you will be warned by kdb. The secend time you type 120 'go', KDB tries to continue. No guarantees that the 121 kernel is still usable in this situation. 122 CONFIG_KDB_CONTINUE_CATASTROPHIC == 1. KDB tries to continue. 123 No guarantees that the kernel is still usable in this situation. 124 CONFIG_KDB_CONTINUE_CATASTROPHIC == 2. KDB forces a reboot. 125 If you are not sure, say 0. 126 127config ARCH_HAS_EARLY_DEBUG 128 bool 129 default n 130 help 131 If an architecture can definitely handle entering the debugger 132 when early_param's are parsed then it select this config. 133 Otherwise, if "kgdbwait" is passed on the kernel command line it 134 won't actually be processed until dbg_late_init() just after the 135 call to kgdb_arch_late() is made. 136 137 NOTE: Even if this isn't selected by an architecture we will 138 still try to register kgdb to handle breakpoints and crashes 139 when early_param's are parsed, we just won't act on the 140 "kgdbwait" parameter until dbg_late_init(). If you get a 141 crash and try to drop into kgdb somewhere between these two 142 places you might or might not end up being able to use kgdb 143 depending on exactly how far along the architecture has initted. 144 145endif # KGDB 146