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类似。

4.保存调试配置

每次调试都要设置riscv:rv64和端口比较麻烦,可以将这两个步骤直接写到配置文件中,步骤为首先用nano ~/.gdbinit打开配置文件,然后把set architecture riscv:rv64target remote localhost:25000写入到配置文件中,如下:
在这里插入图片描述
然后按下Ctrl+O,再按下enter键保存。按下Ctrl+X退出即可。此时再次运行gdb-multiarch就可以直接调试了

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值