qemu 搭建linux内核调试

1.建立镜像启动相应的内核模块
查看驱动加载地址
#cat /porc/modules | grep driv
cat /sys/modules/driv1/settings/.text
cat g > /proc/sysrg-trigger //这个是双机调试终端被调试机的命令
2.调试器链接被调试机
(gdb)target remote localhost:1234
3.调试机gdb加载符号
(gdb)add-symbol-file /home/driv.ko 0xfffffffffa008f00
(gdb) break device_open
(gdb) c

备注:打包启动文件
$find . -printo | cpio --null -ov --format=newc | gzip -9 > …/initramfs.cpio.gz

启动qemu的命令
qemu-system-x86_64 -s -kernel /path/to/vmlinux -initrd initramfs.cpio.gz -nographic -append “console=ttys0”

查看内核相应的地址
cat /proc/kallsyms | grep native_write_cr4

静态编译文件:
gcc test.c --static -o init

gdb 打印带符号的全局变量和局部变量
p file::参数
p function::参数

gdb step/s next/n

#!/bin/bash 找不到文件或执行错误
关于windows下编辑工具导致文件格式是dos ,改Unix
sed -i “s/\r//” start.sh

关于qemu与宿主机联网问题

#宿主机设置

sudo tunctl -t tap0 -u lier   
sudo chmod 0666 /dev/net/tun
sudo ifconfig tap0 192.168.2.1 up
sudo echo 1 > /proc/sys/net/ipv4/ip_forward   #宿主机和主机之间的网段数据转发宿主机这里和主机必须不在同一网段
sudo iptables -t nat -A POSTROUTING -j MASQUERADE

#主机设置

#sudo ifconfig ens3 192.168.2.2 up
#sudo route add default gw 192.168.2.1
#sudo vim /etc/resolv.conf   nameserver 8.8.8.8
#echo "nameserver 8.8.8.8" >> /etc/resolv.conf
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值