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

本实验在“实验楼”的虚拟环境上完成(https://www.shiyanlou.com):

一共3个任务:

1、通过本地Linux系统或实验楼在线环境完成构建调试Linux内核网络代码的环境MenuOS系统

2、证实已经在MenuOS上能够完成TCP客户端和服务器发送和接收hello/hi,也就是MenuOS的网络可以正常工作

3、证实通过gdb可以跟踪到内核代码,比如start_kernel、sys_socketcall等内核函数

 

一、搭建MenuOS系统

打开桌面上的“Xface终端”:

打开LINUX内核,然后从GitHub下载程序文件:

使用make来编译lab2,然后make rootfs编译并生成根文件系统:

然后运行MenuOS操作系统:

二、验证MenuOS的网络可以正常工作

 使用命令replyhi,用hello来回复TCP服务:

 可以通信,验证成功!

 

三、gdb跟踪内核代码

重新打开一个终端,使用跟踪分析 LinuxKernel(内核) 的启动过程的 -s 和 -S 选项启动 MenuOS 系统。

 

 接着再重新打开一个终端,进入gdb调试阶段:

 

(gdb)file linux-3.18.6/vmlinux   // 在targe remote 之前加载符号表
(gdb)target remote:1234          // 建立 gdb 和 gdbserver 之间的连接

 

 start_kernel、sys_socketcall内核函数,设置断点跟踪:

 

 可以看出,函数start_kernel()在main函数的501行,函数sys_socketcall在2492行。

 实验完成!

原文地址:https://www.cnblogs.com/qyf2199/p/12030091.html