Ubuntu使用Eclipse+UML调试linux kernel

本文介绍在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 

注意,在执行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,这样更加的方便。


你可能感兴趣的:(Ubuntu使用Eclipse+UML调试linux kernel)