Включил в конфиге следующие опции:
DEBUG_KERNEL=y DEBUG_INFO=y DEBUG_BUGVERBOSE=y CONFIG_FRAME_POINTER=y CONFIG_KALLSYMS=y CONFIG_KALLSYMS_ALL=yЗапустил oldconfig:
Compile the kernel with debug info (DEBUG_INFO) [Y/n/?] y Reduce debugging information (DEBUG_INFO_REDUCED) [N/y/?] (NEW) N Produce split debuginfo in .dwo files (DEBUG_INFO_SPLIT) [N/y/?] (NEW) N Generate dwarf4 debuginfo (DEBUG_INFO_DWARF4) [N/y/?] (NEW) N Generate BTF typeinfo (DEBUG_INFO_BTF) [N/y/?] (NEW) N Provide GDB scripts for kernel debugging (GDB_SCRIPTS) [N/y/?] (NEW) Y Enable __must_check logic (ENABLE_MUST_CHECK) [Y/n/?] y Warn for stack frames larger than (needs gcc 4.4) (FRAME_WARN) [1024] 1024 Strip assembler-generated symbols during link (STRIP_ASM_SYMS) [N/y/?] n Generate readable assembler code (READABLE_ASM) [N/y/?] n Debug Filesystem (DEBUG_FS) [Y/?] y Install uapi headers to usr/include (HEADERS_INSTALL) [N/y/?] n Enable full Section mismatch analysis (DEBUG_SECTION_MISMATCH) [Y/n/?] y Make section mismatch errors non-fatal (SECTION_MISMATCH_WARN_ONLY) [Y/n/?] y Force weak per-cpu definitions (DEBUG_FORCE_WEAK_PER_CPU) [N/y/?] nСобрал ядро, запускаю:
qemu-system-i386 -m 512m -append 'console=ttyS0 nokaslr' -display none -serial mon:stdio -kernel arch/x86/boot/bzImage -s -S
, и запускаю gdb vmlinux
. Дебаг идет, но vmlinux-gdb.py не загружен, apropos lx
не показывает ничего, add-auto-load-safe-path
не делает ничего, так как я подозреваю, что gdb даже не пытается загружать скрипты.
И gdb, и qemu из репов дебиана. Какова вероятность, что проблема в них, а не в моих кривых руках? Может, я что-то очевидное делаю не так?