我正在使用GDB和Qemu i386远程调试32位Linux内核。我的GDB脚本如下所示:
target remote localhost:10000
source .
symbol-file vmlinux
set width 0
set height 0
set verbose off
b rest_init
commands
continue
end
b console_init
commands
continue
end
b start_kernel
commands
continue
end
b startup_32
commands
continue
end
continue
现在显然我错过了一些东西,因为C land中的断点,即start_kernel
,console_init
,rest_init
被识别为断点,因此被GDB跳得很好。
什么行不通的是startup_32
上的断点,它仍在装配区。 GDB只是跳过它就好像它没有被调用一样,但它肯定被调用,因为它是32位内核入口点。
这是由于某些实模式/保护模式的小提琴吗?