设为首页 加入收藏

TOP

Linux 内核调试1-UML
2014-11-24 11:27:56 来源: 作者: 【 】 浏览:1
Tags:Linux 内核 调试 UML

最近看了些Linux内核源码,之前认为最好的调试内核源码最好的方式使用Qemu虚拟机,结合GDB调试,虽然在网上也看到一些这种调试方式的弊端,但感觉虚拟机支持调试是最完美的事情,虽然Bochs更为灵活甚至内置调试器,但速度太慢。


之前一直觉得KGDB这种双机调试的方式很不完美,还必须使用一个调试机,不过在Windows下使用WinDbg调试虚拟机多了,感觉这种方式很合理,起 码被调试机当机的情况下,调试机还是活的。而且这样看上去很酷,而且比SoftICE这样“不稳定”的调试方式要好的多。



编译内核命令要在普通方式后加入构架um参数:


编译完成后会在源码根目录下生成可执行文件 linux。


到这里似乎很简单,下面需要创建 Linux 根文件系统,也就是除内核以外的硬盘文件,这个根文件系统包括Linux文件组织数,以及启动系统所必须的一些辅助程序。


一种方法就是手工制作:


如此便可通过拷贝文件到/mnt/temp/目录,等同于拷贝文件到rootfs.img硬盘文件。这里可以直接通过主机的文件目录组织去构建跟文件系统,也可以直接安装一个linux到此目录。


使用最简单的方式就是直接使用现成的根文件系统。在UML网站 The User-mode Linux Kernel Home Page 有相关链接可以下载,比如下载 DSL-4.4-root_fs.bz2 文件,首先解压运行之:


运行后出现 Unable to mount root fs on unknown-block(0,0) 错误后程序崩溃,这里可能是内核有关文件系统编译选项的问题,明天继续研究。。。


到这里有几个问题:
1、64位系统下UML编译,要设置子系统等,如何设置?
2、根文件系统建立,一个Linux最小单元的根文件系统需要哪些文件和目录?
3、内核编译选项问题;
4、调试UML方法和UML启动参数,比如网络设置等等。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Linux字符设备驱动框架详解 下一篇Linux 内核调试2-UML调试内核

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·C 内存管理 | 菜鸟教 (2025-12-26 20:20:37)
·如何在 C 语言函数中 (2025-12-26 20:20:34)
·国际音标 [ç] (2025-12-26 20:20:31)
·微服务 Spring Boot (2025-12-26 18:20:10)
·如何调整 Redis 内存 (2025-12-26 18:20:07)