使用qemu调试linux内核

使用qemu调试linux内核
2011年03月20日
  使用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的连接都排除了:
  ├── bin │ ├── busybox ├── dev │ ├── console │ ├── null │ ├── tty │ ├── ttyS0 │ ├── ttyS1 │ ├── ttyS2 │ ├── ttyS3 │ └── zero ├── etc │ ├── fstab │ ├── init.d │ │ └── rcS │ ├── inittab │ └── profile ├── lib │ ├── ld-2.11.1.so │ ├── ld-linux.so.2 -> ld-2.11.1.so │ ├── libc-2.11.1.so │ ├── libc.so.6 -> libc-2.11.1.so │ ├── libm-2.11.1.so │ ├── libmemusage.so │ └── libm.so.6 -> libm-2.11.1.so ├── linuxrc -> bin/busybox ├── lost+found ├── proc ├── sbin └── usr ├── bin └── sbin
  说明:
  -s 在1234 接受gdb的调试连接
  -S 虚拟机启动后立即暂停,等待gdb的连接。
  -kernel 内核文件
  -append 内核启动参数, 这里指定的根分区为sda, 而不是sda1 是因为前面我们创建的镜像文件是个分区镜像内不是磁盘镜像里在创建的分区。
  -hda 指定第一个盘的文件名。
  b) 启动gdb, 连接到localhost的1234端口
  c ) gdb连接上后就可以,根调试普通程序一下,打断点,什麽的了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值