Отладка загрузки ядра Linux с помощью qemu и gdb.Это исходная ветвь: https://android.googlesource.com/kernel/goldfish/+/android-goldfish-3.18. Конфигурация i386_ranchu_defconfig.Вот шаги, которые я использую:
qemu-system-i386 -kernel ~/aosp/goldfish/arch/x86/boot/bzImage -s -S
gdb ~/aosp/goldfish/vmlinux
(gdb) target remote :1234
0x0000fff0 in ?? ()
(gdb) b startup_32
Breakpoint 1 at 0xc0200000: file arch/x86/kernel/head_32.S, line 96.
(gdb) c
Continuing.
Однако программа не останавливается при запуске_32.Вместо этого, если я изменяю startup_32 на start_kernel, он работает.
(gdb) b start_kernel
Breakpoint 1 at 0xc0b3672c: file init/main.c, line 498.
(gdb) c
Continuing.
Breakpoint 1, start_kernel () at init/main.c:498
498 {
(gdb)
Почему программа не останавливается при запуске_32?