使用qemu调试linux内核

来源:互联网 发布:淘宝美女店主的店 编辑:程序博客网 时间:2024/05/21 09:18

使用qemu调试linux内核

       qemu对gdb的良好支持,使它成为研究和调试linux内核的不错的工具, qemu安装和作为单纯的虚拟机来运行别的系统,在这就不说了,网上已经有很多资料了, 主要是记录一下调试基本内核的过程, 以免自己忘了。

 

1.  编译内核

 

2. 编译Busybox

 

3. 建造虛擬磁盤分區文檔

        1. 建一個64M的raw格式的虛擬磁盤,大小根據自己的需要設定。

               dd if=/dev/zero of=./busybox.img bs=1M count=64

        2. 格式化分區

 

              mkfs.ext3 busybox.img
        3. 在鏡像磁盤上創建根文件系統。
                  a ) mount分区,将虚拟硬盘分區挂到系统中

 

                            mount -o loop busybox.img /mnt/disk
                  b) 执行下列命令將編譯的Busybox的內容復制到 /mnt/disk 目錄中, Busybox执行完make install后会生成_install目录
                        cp -a ./_install/*  /mnt/disk/
                       
                      复制必要的设备文件到分区中:
                       
                      复制其它一些必要发文件到分区中, 我的主机系统为ubuntu 10.04 ,下面是我分区文件树, 把指向busybox的连接都排除了:
 
4. 调试内核
          a) 啟動qemu
    
        說明:
               -s           在1234 接受gdb的調試連接
               -S          虛擬機啟動後立即暫停,等待gdb的連接。
               -kernel  內核文件
               -append    內核啟動參數, 這裡指定的根分區為sda, 而不是sda1  是因為前面我們創建的鏡像文件是個分區鏡像內不是磁盤鏡像裡在創建的分區。
               -hda     指定第一個盤的文件名。
    b) 啟動gdb, 連接到localhost的1234端口
 
    c ) gdb連接上後就可以,根調試普通程序一下,打斷點,什麽的了
 

 

原创粉丝点击