kgdb linux内核,Qemu kgdb调试内核

2,用Qemu 启动Linux

/usr/local/qemu/bin/qemu -kernel ./linux-2.6.30/arch/i386/boot/bzImage -hda ./1248179541.img -boot c -append "root=/dev/sda kgdboc=ttyS0,115200 kgdbwait" -net nic,vlan=0 -net tap,vlan=0,ifname=tap0,script=/etc/qemu-ifup -serial tcp::4321,server -alt-grab

a,/usr/local/qemu/bin/qemu  : qemu 程序,下边为参数

b,-kernel ./linux-2.6.30/arch/i386/boot/bzImage  :  指定内核

c,-hda ./1248179541.img :指定磁盘文件

d,-boot c :qemu 启动参数

e,-append "root=/dev/sda kgdboc=ttyS0,115200 kgdbwait" : 内核启动参数

f,-net nic,vlan=0 -net tap,vlan=0,ifname=tap0,script=/etc/qemu-ifup :网络接口参数

g,-serial tcp::4321,server :串口参数

h,-alt-grab :使用ctrl + Shift + Alt 作为热键

3,启动GDB

gdb vmlinux

设定波特率

set remotebaud 115200

连接到调试系统

target remote localhost:4321

当调试系统就绪时,会有如下信息

Remote debugging using localhost:4321

Malformed response to offset query, QC0000000000000001

重新连接到调试系统

target remote localhost:4321

4,让系统启动完成(不打算调试启动过程的话)

continue

5,让系统陷入调试

在目标系统上输入

echo g > /proc/sysrq-trigge

=======================

使用qemu gdb-stub使用:

A Qemu debug memo 0) 安装qemu  sudo apt-get install qemu qtemu1) 创建rootfs imgqemu-img create rootfs.img 5G mkfs.ext3 -b 2048 rootfs.img sudo mount -o loop rootfs.img /mnt2) 创建根文件系统没有?在虚拟机内安装一个精简的Ubuntu算了....3)启动qemu  (-S 让qemu停止,并等待gdb的链接)qemu -kernel export/common_pc-bzImage-WR2.0zz_cgl -hda rootfs.img -append "root=/dev/hda" -S4) 在qemu窗口输入ctrl+alt+2  切换到qemu 控制台输入gdbserver 64435) 启动gdbgdb common_pc-vmlinux-symbols-WR2.0zz_cgl>target remote  127.0.0.1:6443> b start_kernel> c   6)tips---比如设置了运行b fork, 在启动的时候可以c 50, 代表忽略50各种break point.  ---Ctrl+C 即可停止内核运行, bt可以看到当前运行的函数0b1331709591d260c1c78e86d0c51c18.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值