[K]GDB – a few tips and tricks
GDB is a large and powerful program with many features. We'll describe a few top-of-mind tips and tricks here that can prove useful when using GDB (and KGDB).
Setting up and using GDB scripts with CONFIG_GDB_SCRIPTS
Dating back to the 4.0 kernel, Linux provides several Python-based helper scripts – seen as additional GDB commands – to help debug the kernel (and kernel modules). Their code's within the kernel source in scripts/gdb
.
Enable them by setting CONFIG_GDB_SCRIPTS=y
. Once enabled, it's advisable to put the following line in your GDB startup file ~/.gdbinit
:
add-auto-load-safe-path <...>/scripts/gdb/vmlinux-gdb.py
Or, simpler but more permissive, add-auto-load-safe-path /
. This has GDB parse this Python script within the kernel source tree (scripts/gdb/vmlinux-gdb.py
) and thus recognize the Python-based GDB helper scripts – a very useful thing! All the helper scripts are prefixed...