当前课程知识点:互联网体系结构 > 第三周:TCP协议与Linux内核 > Linux系统的编译、构建和调试 > Video
我们把那个Linux系统
一个简单的linux系统构建起来之后呢
我们还需要掌握一定的方法
就是调试linux内核的代码对吧
这个对我们去分析内核的代码
跟踪分析的光阅读代码可能是不够的
光阅读代码叫纸上得来终觉浅是吧
我们需要看代码的实际是怎么执行的
因为内核的代码比较复杂
我们想把它完全理解透彻的是很困难的对吧
所以呢
我们可以看着代码
对照着他的执行过程
他在实际的运行这样
那就是更靠谱一些
对吧
跟我们在理解上更准确一些和系统的值
实际执行可以对照起来
那我们来看怎么来构建这linux内核的gdb调试环境
嗯首先呢
我们需要重新配置编译内核
使它携带调试信息由正常编译的内核
它是符号表信息呢
代码符号表内信息呢
他都是不携带的
所以呢
我们需要重新编译一下
恩重新配置
重新配置
重新编译一下
然后呢
我们第二步呢
是我们在QEMU里边的需要启动gdb server
实际上是加个参数就可以了啊
然后呢
我们再用gdb客户端与gdb server建立连接之后呢
我们还需要把
我们刚被重新编译的符号表加载进了这样
那我们就可以设置断点
就可以跟踪这个几次内核的执行过程了
那我们来看具体来看下怎么重新配置内核呢
那我们在使用
而且你根据你自己的环境
你是使用
你用完这个之后呢
你再使用一个
我们找到
有一个编译内核让他携带,就是携带调试信息的来编译内核
这样那我们再重新编译就可以了
那我们来看一下怎么找这个哈
我们进入到这个呢
我都是make,之前我们都是编译过的对吧
编译配置好的我们就
我们就翻到最下
就可以找到
里面呢
有一个
进入第一个呢
就是这个,对吧
就是
这个是选中状态的对吧选中状态
这样当我们把它保存退出
保存退出
就这时
侯那再重新编译是吧
重新编译就可以了
重新编译就可以编译会需要很长时间的吧
我们再来看他怎么样
在这个QEMU中启动gbd server
这地方那比我们之前的这个命令行
那我们又多加了一个参数
-s和-S
小S大S不是台湾那个小S大S啊
也就是说
我们这样的小s呢
是指这个gdb server的TCP端口是1234的默认使用1234
但是我们也可以修改它的吧
我们可以修改
但是我们这地方就默认的了
然后呢
-S呢
是冻结CPU
在启动的时候冻结CPU
这也就是我们可以看一下
这样
当我们启动的时候
你会发现我们启动起来之后
他的QEMU的窗口
它是黑屏的还是stopped
这就是大S起作用了
对吧大S起作用
那么我们呢
这时
那我们打开一个
再打开一个窗口
这时侯那我们在恩打开一个
GDB的客户端呢
我们这时候就可以
1234端口占到我们就可以连接到这个
客户端上同时
那我们需要把这个linux
我们编译好的带debug信息的带就是符号表的信息的
把它加载进来
把它加载进
这时候
如果我们就是
也可以也可以用c替代
这时
我我们可以设置一个断点啊
你先设置一个断点break我们设置断点
我们就设置在
我发现他可以找到,这个函数
而且他精准的找到了这个在init目录
下面main.c 的538行有一个
我说
那我们用C就可以
-课程内容简介
--Video
-网络协议基础
--Video
--Video
--Video
--Video
-上网浏览网页背后的网络通信过程
--Video
--Video
-实验环境安装配置
--Video
-网络相关命令
--Video
--Video
-本周作业
--外部链接
-编译、构建和调试
--Video
--Video
--Video
-Socket接口
--Video
--Video
-UDP范例代码
--Video
-TCP范例代码
--Video
-本周作业
--外部链接
-TCP协议概述
--Video
--Video
-Linux网络协议栈源代码简介
--Video
-Linux系统的编译、构建和调试
--Video
--Video
-TCP协议源代码分析
--Video
-本周作业
--外部链接
-IP协议基础
--Video
-路由表
--Video
-路由转发举例
--Video
-IP协议栈源代码解析
--Video
-路由协议简介
--Video
-网络层数据传输路径解析
--Video
-本周作业
--外部链接
-ARP协议基础
--Video
-ARP解析的过程
--Video
-ARP解析在网络传输过程中的作用
--Video
-ARP协议栈源代码解析
--Video
-本周作业
--外部链接
-以太网基础
--Video
--Video
-交换机的学习、转发和过滤数据库
--Video
-常见二层协议
--Video
-数据链路层在Linux网络协议栈中的一些关键代码分析
--Video
-本周作业
--外部链接
-DNS协议基础
--Video
-DNS域名的存储
--Video
-DNS域名解析过程分析
--Video
-本周作业
--外部链接
-互联网架构设计的最初动机与核心目标
--Video
-互联网架构设计的具体目标及背后重要权衡
--Video
--Video
--Video
-课程考核
--外部链接