 5dd11d5d47
			
		
	
	
	5dd11d5d47
	
	
	
		
			
			The only way the debugger can handle a trap in inside rcu_lock, notify_die, or atomic_notifier_call_chain without a recursive fault is to have a low level "first opportunity handler" do_trap_or_bp() handler. Generally this will be something the vast majority of folks will not need, but for those who need it, it is added as a kernel .config option called KGDB_LOW_LEVEL_TRAP. Also added was a die notification for oops such that kdb can catch an oops for analysis. There appeared to be no obvious way to pass the struct pt_regs from the original exception back to the stack back tracer, so a special case was added to show_stack() for when kdb is active because you generally desire to generally look at the back trace of the original exception. Signed-off-by: Jason Wessel <jason.wessel@windriver.com> Acked-by: Ralf Baechle <ralf@linux-mips.org>
		
			
				
	
	
		
			82 lines
		
	
	
	
		
			2.3 KiB
			
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			82 lines
		
	
	
	
		
			2.3 KiB
			
		
	
	
	
		
			Text
		
	
	
	
	
	
| 
 | |
| config HAVE_ARCH_KGDB
 | |
| 	bool
 | |
| 
 | |
| menuconfig KGDB
 | |
| 	bool "KGDB: kernel debugger"
 | |
| 	depends on HAVE_ARCH_KGDB
 | |
| 	depends on DEBUG_KERNEL && EXPERIMENTAL
 | |
| 	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 DocBook form in Documentation/DocBook/.  If
 | |
| 	  unsure, say N.
 | |
| 
 | |
| if KGDB
 | |
| 
 | |
| config KGDB_SERIAL_CONSOLE
 | |
| 	tristate "KGDB: use kgdb over the serial console"
 | |
| 	select CONSOLE_POLL
 | |
| 	select MAGIC_SYSRQ
 | |
| 	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 on which will 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_KEYBOARD
 | |
| 	bool "KGDB_KDB: keyboard as input device"
 | |
| 	depends on VT && KGDB_KDB
 | |
| 	default n
 | |
| 	help
 | |
| 	  KDB can use a PS/2 type keyboard for an input device
 | |
| 
 | |
| endif # KGDB
 |