本文介绍在Ubuntu下使用eclipse+cdt+uml进行linux内核调试的方法,所谓UML并非是指Unified Modeling Language,而是User Mode Linux,是将kernel作为
process在linux系统中运行的技术,该技术目前已经集成进linux的版本中了,使用uml可以方便的进行kernel的调试,再结合eclipse一定的设置则可以进行源码级的debug。 首先,到www.kernel.org中下载一个linux版本,本文使用的是linux-3.3.8版本,然后解压缩,在根目录下运行如下命令: make ARCH=um defconfig make ARCH=um menuconfig make ARCH=um
process在linux系统中运行的技术,该技术目前已经集成进linux的版本中了,使用uml可以方便的进行kernel的调试,再结合eclipse一定的设置则可以进行源码级的debug。 首先,到www.kernel.org中下载一个linux版本,本文使用的是linux-3.3.8版本,然后解压缩,在根目录下运行如下命令: make ARCH=um defconfig make ARCH=um menuconfig make ARCH=um
注意,在执行make ARCH=um menuconfig时要在”Kernel hacking”中选择“Compile the kernel with debug info”和“Compile the kernel with frame pointers”,如下图
这样编译完成后,会在根目录下生成一个linux文件,然后运行如下命令: gdb ./linux
就可以进行gdb的调试了,由于此时没有挂接文件系统,所以run之后会出现crash,因此还要执行如下命令:
gdb ./linux ubda=CentOS6.x-AMD64-root_fs mem=256m
上面的CentOS6.x-AMD64-root是指linux的根文件系统,可以使用dd进行手工制作,也可以使用网上现成做好的,可以到(http://fs.devloop.org.uk/)这里去根据需要下载
下面重点介绍使用Eclipse调试kernel,这样更加的方便。