mirror of
				https://github.com/torvalds/linux.git
				synced 2025-10-31 08:38:45 +02:00 
			
		
		
		
	 d5af79c05e
			
		
	
	
		d5af79c05e
		
	
	
	
	
		
			
			Move gdb and kgdb debugging documentation to the dedicated debugging directory (Documentation/process/debugging/). Adjust the index.rst files to follow the file movement. Adjust files that refer to these moved files to follow the file movement. Update location of kgdb.rst in MAINTAINERS file. Add a link from dev-tools/index to process/debugging/index. Note: translations are not updated. Signed-off-by: Randy Dunlap <rdunlap@infradead.org> Cc: Sebastian Fricke <sebastian.fricke@collabora.com> Cc: Jonathan Corbet <corbet@lwn.net> Cc: workflows@vger.kernel.org Cc: Jason Wessel <jason.wessel@windriver.com> Cc: Daniel Thompson <danielt@kernel.org> Cc: Douglas Anderson <dianders@chromium.org> Cc: linux-debuggers@vger.kernel.org Cc: kgdb-bugreport@lists.sourceforge.net Cc: Doug Anderson <dianders@chromium.org> Cc: Alex Shi <alexs@kernel.org> Cc: Hu Haowen <2023002089@link.tyut.edu.cn> Cc: Andrew Morton <akpm@linux-foundation.org> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Cc: linux-serial@vger.kernel.org Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Acked-by: Daniel Thompson <danielt@kernel.org> Reviewed-by: Douglas Anderson <dianders@chromium.org> Signed-off-by: Jonathan Corbet <corbet@lwn.net> Link: https://lore.kernel.org/r/20241210000041.305477-1-rdunlap@infradead.org
		
			
				
	
	
		
			166 lines
		
	
	
	
		
			5.6 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			166 lines
		
	
	
	
		
			5.6 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| # 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/process/debugging/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 && VT
 | |
| 	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 && !PARISC
 | |
| 	depends on HAS_IOPORT
 | |
| 	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
 |