mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-25 05:04:09 +08:00
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>
83 lines
2.3 KiB
Plaintext
83 lines
2.3 KiB
Plaintext
|
|
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
|