brintos

brintos / linux-shallow public Read only

0
0
Text · 5.6 KiB · 537e1b3 Raw
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