今天终于调试成功linux内核了。让我与你分享喜悦!之前看过linux的源码,总觉得要是能调试就好了。无奈,我Java出身,对c不熟悉。运行一个c代码都很难,更别说调试了,我还是调试这种不同于普通c项目的内核代码。我只是为了学习Linux内核源码而调试,所以不想花太多时间去研究如何搭建这个调试环境。想在网上找教程,一次性部署后一直在用。按照文档搭建成功。今天终于找到了一个大佬的文档,照着上面的操作就可以成功了,分享给大家,同时自己备份一下。先按照这个文档,这样就可以使用gdb调试了:https://wenfh2020.com/2021/05/19/gdb-kernel-networking/然后按照这个文档,使用vscode调试更直观(当然还有gdb方法):https://wenfh2020.com/2021/06/23/vscode-gdb-debug-linux-kernel/最终效果是。虚拟机使用qemu启动Linux5.0.1内核。在本机上使用vscode的ssh-remote插件远程连接虚拟机,然后使用gdb调试。为大家放大。main.c下的main方法。看到断点进来我很兴奋!这个文件我只好存了,虚拟机镜像不敢动,哈哈,以后可以愉快的调试linux内核了。但是,中间踩了很多坑。本来,我想灵活一些。我用的是自己的ubuntu版本和我想调试的linux内核版本,都失败了。中间出现了各种奇怪的问题。。。放弃了好吧,照着别人的文档先跑再说吧~不知道文档有没有多余的操作。反正各种风骚操作看不懂,还得修改gdb的源码。以后再看能不能看懂低版本的linux。如果大家有更方便的调试方法可以教教我,这真是空白。本文转载自微信公众号《低并发编程》,可通过以下二维码关注。转载本文请联系低并发编程公众号。
