Linux 内核终于可以 Debug 了!

系统 Linux
无奈 Java 出身的我,本来对 c 就很不熟,跑起一个 c 代码就很费劲了,更别说调试,而且还是调试这种和普通 c 项目不一样的内核代码。

[[414193]]

今天终于成功 debug 了 Linux 内核,允许我一惊一乍给大家分享下喜悦吧!

之前读 Linux 的源码,一直想着如果能 debug 就好了。

无奈 Java 出身的我,本来对 c 就很不熟,跑起一个 c 代码就很费劲了,更别说调试,而且还是调试这种和普通 c 项目不一样的内核代码。

仅仅是出于学习 Linux 内核源码的目的想要调试,所以不想花太多时间研究如何构建这个调试环境,想着在网上找个教程,一次性部署好之后就一直用了,无奈一直没找到能照着文档就搭建成功的。

今天终于找到一个大佬的文档,直接按上面说的就能操作成功,分享给大家,同时我自己也做个备份。

先照着这个文档,使得可以用 gdb 进行调试:

  1. https://wenfh2020.com/2021/05/19/gdb-kernel-networking/ 

再按照这个文档,用 vscode 进行更直观地调试(当然也是 gdb 方式):

  1. https://wenfh2020.com/2021/06/23/vscode-gdb-debug-linux-kernel/ 

最终效果是。

虚拟机这边用 qemu 启动 Linux 5.0.1 内核。

本机这边用 vscode 的 ssh-remote 插件远程连接虚拟机,然后用 gdb debug。

给大家放大点。

main.c 下的主方法。

看到断点进来相当激动了!这个文档我可得保存好,虚拟机镜像也不敢动了,哈哈,以后就可以开开心心 debug Linux 内核啦。

不过中间也踩了好多坑,原本我想着灵活一点,用自己的 ubuntu 版本,用自己想调试的 Linux 内核版本,无奈都失败了,中间有各种奇奇怪怪的问题...

我就放弃了,乖乖先按照人家的文档跑起来再说吧~

不知道文档里是不是有多余操作,反正各种骚操作我是看不懂,还要改 gdb 的源码。

 

之后我看看能不能把低版本的 Linux 也搞通,如果大家有更方便地调试方法,可以教教我,这块真是空白。

本文转载自微信公众号「低并发编程」,可以通过以下二维码关注。转载本文请联系低并发编程公众号。

 

责任编辑:武晓燕 来源: 低并发编程
相关推荐

2024-07-16 16:53:09

2016-11-04 12:04:17

Ubuntu内核服务

2021-08-10 09:02:37

NumPy视图内存

2017-03-19 16:57:59

LinuxAMD处理器

2022-05-14 17:01:21

开源LinuxNVIDIA

2021-02-25 09:50:01

LinuxWindows内核

2016-07-19 10:06:59

Linux桌面Windows

2013-10-28 09:40:51

Android内核

2020-04-09 11:50:33

LinuxQQLinux QQ

2021-09-29 09:50:41

Linux内核日志

2021-09-08 05:46:51

Linux内核日志

2009-03-10 17:15:07

Linux兼容内核Win程序

2018-05-04 14:11:34

SwiftPython开发

2010-05-20 09:09:07

Linux内核

2010-10-25 10:52:34

2018-02-25 10:49:49

GboardiOS平台Android

2019-07-24 09:59:21

iPhoneiOS 12.4数据迁移

2020-09-14 14:30:31

WindowsLinux命令

2023-01-05 12:04:27

DEBUG信息打印

2023-10-31 07:40:15

EslintJSHint
点赞
收藏

51CTO技术栈公众号