利用QEMU+GDB在ubuntu系统中配置MIPS调试运行环境

在ubuntu系统中配置MIPS调试运行环境

注:系统环境为ubuntu 18.04.

安装QEMU和GDB

QEMU是用于各种体系结构的仿真器。通常,它用于模拟整个PC(即运行虚拟机)。对于调试单个程序,这不是必需的。在Linux上,可以使用QEMU用户空间仿真。

安装qemu

$ sudo apt-get install qemu qemu-user qemu-user-static

此外,默认情况下为Ubuntu和类似操作系统安装的GDB对其他体系结构一无所知。可以利用gdb-multiarch包

$ sudo apt-get install gdb-multiarch

binfmt可以使用该包查看文件的类型,并自动调用正确的解释器。在我们的例子中,它将看到您正在尝试运行一个低端的MIPS(mipsel)二进制文件并调用qemu-mipsel。

$ sudo apt-get install 'binfmt*'

安装libraries

包含mipsel运行所选二进制文件所需的所有库的软件包:

$ sudo apt-get install libc6-mipsel-cross      # For MIPS-EL

构建程序,则需要交叉编译器。

$ sudo apt-get install gcc-mipsel-linux-gnu

最后,我们需要binfmt确定mipsel二进制文件在哪里。

$ sudo mkdir /etc/qemu-binfmt
$ sudo ln -s /usr/mipsel-linux-gnu /etc/qemu-binfmt/mipsel # MIPSEL

现在可以在系统上运行二进制文件
效果:
Screenshot from 2020-11-20 11-08-07.png

使用GDB调试

需要启动qemu-mips以便公开GDB存根,然后从GDB连接

1.首先打开一个终端启动qemu-mips
(12345是一个连接端口,可以使用任意)

qemu-mipsel -g 12345 ./bomb

Screenshot from 2020-11-20 11-12-59.png
2.打开另一个终端利用gdb-multiarch进行调试

gdb-multiarch ./bomb

Screenshot from 2020-11-20 11-16-21.png
并依次输入

(gdb) set arch mips
(gdb) set endian little
(gdb) target remote localhost:12345

这样就可以继续利用gdb调试
一些关于phase_1调试过程的demo:
Screenshot from 2020-11-20 11-20-49.png
设置断点之后执行r命令后输入continue,在另一个终端运行,此终端用来调试。
Screenshot from 2020-11-20 11-23-46.png
继续调试:
Screenshot from 2020-11-20 11-27-22.png

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值