构建调试Linux内核网络代码的环境MenuOS系统
本实验采用实验楼在线环境,因此省去了下载源码等步骤。
构建menuOS系统
1.将文件拷贝到本地系统
$ git clone https://github.com/mengning/linuxnet.git

2.编译根文件系统
$ cd linuxnet/lab3
$ make rootfs

3.启动menuOS
qemu -kernel ../../linux-3.18.6/arch/x86/boot/bzImage -initrd ../rootfs.img -s -S #-S 让cpu停在开始界面(按c继续)

4.发送hello/hi
MenuOS>> replyhi # Please input hello... MenuOS>> hello

跟踪分析 TCP 协议
打开另一个终端,运行gdb并调试
(gdb)file ../../linux-3.18.6/vmlinux (gdb)target remote:1234 (gdb)break start_kernel
(gdb)break sys_socketcall

最后可以发现,gdb可以追踪到start_kernel函数,断点在init/main.c的501行,sys_socketcall函数,断点在net/socket.c,2492行

浙公网安备 33010602011771号