相关疑难解决方法(0)

如何使用GDB和QEMU调试Linux内核?

我是内核开发的新手,我想知道如何使用QEMU和gdb运行/调试linux内核.我实际上正在阅读Robert Love的书,但遗憾的是它无法帮助读者如何安装适当的工具来运行或调试内核......所以我所做的就是按照本教程http://opensourceforu.efytimes.com/2011/02/kernel-development-debugging-using-eclipse /.我正在使用eclipse作为IDE在内核上开发,但我想首先让它在QEMU/gdb下运行.所以我到目前为止所做的是:

1)用以下代码编译内核:

make defconfig (then setting the CONFIG_DEBUG_INFO=y in the .config)
make -j4
Run Code Online (Sandbox Code Playgroud)

2)编译完成后,我使用以下命令运行Qemu:

qemu-system-x86_64 -s -S /dev/zero -kernel /arch/x86/boot/bzImage
Run Code Online (Sandbox Code Playgroud)

它以"停止"状态启动内核

3)因此我必须使用gdb,我尝试以下命令:

gdb ./vmlinux
Run Code Online (Sandbox Code Playgroud)

正确运行但是...现在我不知道该怎么办...我知道我必须在端口1234(Qemu使用的默认端口)上使用远程调试,使用vmlinux作为符号表文件调试.

所以我的问题是:我应该怎样做才能在Qemu上运行内核,将调试器附加到它上面,从而使它们协同工作,使内核开发更轻松.

linux gdb qemu linux-kernel

33
推荐指数
2
解决办法
4万
查看次数

标签 统计

gdb ×1

linux ×1

linux-kernel ×1

qemu ×1