构建调试Linux内核网络代码的环境MenuOS系统

本文基于实验楼在线环境

1.  进入Menuos系统

cd ~/LinuxKernel/
qemu -kernel linux-3.18.6/arch/x86/boot/bzImage -initrd rootfs.img

效果如下图:

构建调试Linux内核网络代码的环境MenuOS系统_第1张图片

然后qmeu窗口。

2. 为Menuos添加网络程序

执行命令:

cd ~/LinuxKernel 
git clone https://github.com/mengning/linuxnet.git
cd linuxnet/lab2
make
cd ../../menu/
make rootfs

进入Menuos系统,输入:replyhi,发现程序已被添加到系统中

 构建调试Linux内核网络代码的环境MenuOS系统_第2张图片

3. 在调试模式下调试网络程序

在一个终端中执行命令:

qemu -kernel linux-3.18.6/arch/x86/boot/bzImage -initrd rootfs.img -s -S # 加上了-s和-S参数

之后在另一个终端中执行:

gdb
file ~/LinuxKernel/linux-5.0.1/vmlinux
break sys_socketcall
target remote:1234
c
list

输入replyhi命令,再输入list查看断点处的代码:构建调试Linux内核网络代码的环境MenuOS系统_第3张图片

 继续输入hello命令,输出调试信息:构建调试Linux内核网络代码的环境MenuOS系统_第4张图片

 

你可能感兴趣的:(构建调试Linux内核网络代码的环境MenuOS系统)