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