码迷,mamicode.com
首页 > 系统相关 > 详细

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

时间:2019-12-05 21:51:38      阅读:81      评论:0      收藏:0      [点我收藏+]

标签:com   根文件系统   显示   修改   tcp   put   客户   inpu   指令   

构建MenuOS系统

1.将指定文件拷贝到本地:

git clone https://github.com/mengning/linuxnet.git

此过程可能需要输入github账号和密码。
技术图片

2.进入目录linuxnet,使用make命令编译根文件系统:

cd linuxnet
make rootfs

3.在Makefile文件中有一条指令用于开启menu系统(不需要自己输入):

qmenu -kernel ../../linux-3.18.6/arch/x86/bzImage -initrd ../rootfs.img

技术图片

测试QEMU

1.在QEMU中完成TCP客户端和服务器发送和接收hello/hi以验证MenuOS正常工作:

MenuOS>> replyhi
# Please input hello...
MenuOS>> hello

技术图片

  • 结果显示TCP客户端和服务器正常工作,打印出了预期的信息

2.修改Makefile内容,rootfs标签下启动QEMU的命令尾部添加-s

技术图片

3.重新make rootfs,启动QEMU

技术图片

4.启动调试,连接到server

gdb
(gdb) file ../../linux-3.18.6/vmlinux
(gdb) target remote:1234    # 连接到gdbserver

技术图片

5.设置断点,验证gdb对start_kernelsys_socketcall这两个内核函数的跟踪是否可行

(gdb) break start_kernel
(gdb) break sys_socketcall

技术图片

  • 结果显示gdb可以追踪到start_kernel函数,断点在init/mian.c的501行;也可以追踪到sys_socketcall函数,断点在net/socket.c文件的2492行

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

标签:com   根文件系统   显示   修改   tcp   put   客户   inpu   指令   

原文地址:https://www.cnblogs.com/Mr-Tiger/p/11992061.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!