MIT6.S081的gdb调试方法

如何使用gdb调试MIT6.S081

在做MIT6.S081实验的时候我们可能会用到gdb来调试程序。那么具体方法是什么呢?

1.配置环境

首先根据官方指南配置好MIT6.S081,具体可见:MIT6.S081实验环境搭建

配置好环境后,

在命令行中输入命令:

复制代码
sudo make qemu-gdb

应该会出现

另开一个终端,输入命令

复制代码
gdb-multiarch

应该会出现

没出现也没关系,如果提示没有gdb-multiarch,使用命令安装就行

复制代码
sudo apt-get install gdb-multiarch

如果启动gdb-multiarch的提示信息没有

复制代码
The target architecture is assumed to be riscv:rv64

那么(每次)启动后需要输入

复制代码
set architecture riscv:rv64

2.连接qemu-gdb

在上面我们输入了sudo make qemu-gdb之后,出现的信息里面有

这个就是我们要连接的端口,根据这个端口,在gdb-multiarch中输入

复制代码
target remote localhost:25000

会出现

这个时候就连接上了

3.加载可执行文件进行调试

使用命令

复制代码
file user/_xxx

来加载可执行文件,例如 file user/_sleep(注意有下划线)

这个时候可以开始打断点了,例如

复制代码
b main

然后多次输入c继续执行

输入到原来的终端应该会有变化

在这里就要输入我们程序的参数了,第一个参数是程序的名字,后面的参数视具体情况而定,例如sleep应该有一个表示多少时间的参数:

此后就可以继续调试了

总之gdb-multiarch的调试方法和gdb类似。

相关推荐
且从容.10 小时前
Ubuntu安装flume
linux·ubuntu·flume
承渊政道10 小时前
Linux网络学习【Reactor反应堆模式】
linux·网络·学习·ubuntu·reactor
讯捷蓝达12 小时前
戴尔R720xd服务器卡死在 “Configuring Memory...Done“,换了内存还是卡?问题根本不在内存
运维·服务器
且从容.13 小时前
ubuntu安装flink
linux·ubuntu·flink
数字新视界15 小时前
动环监控信创适配在智能机房管理中的应用价值与未来展望
大数据·服务器·数据库·动环监控系统·动力与环境监控系统
爱和冰阔落15 小时前
【Linux网络】TCP 服务器如何并发处理多个客户端?从 fork、僵尸进程到双重 fork
linux·运维·服务器·网络
程序员沉梦听雨15 小时前
WSL2的安装与使用
linux·wsl
微小的鱼15 小时前
Linux的渲染与显示系统链路
android·java·linux
lisanmengmeng16 小时前
alertmanger 标签 rules 打上分组标签
linux·运维·服务器
Android系统攻城狮16 小时前
Linux FFmpeg深度解析之av_write_frame调用流程与实战(三十三)
linux·运维·服务器·ffmpeg·音视频进阶·ffmpeg音视频