欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-07-05 16:02:45
...

在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

现在可以在系统上运行二进制文件
效果:
利用QEMU+GDB在ubuntu系统中配置MIPS调试运行环境

使用GDB调试

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

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

qemu-mipsel -g 12345 ./bomb

利用QEMU+GDB在ubuntu系统中配置MIPS调试运行环境
2.打开另一个终端利用gdb-multiarch进行调试

gdb-multiarch ./bomb

利用QEMU+GDB在ubuntu系统中配置MIPS调试运行环境
并依次输入

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

这样就可以继续利用gdb调试
一些关于phase_1调试过程的demo:
利用QEMU+GDB在ubuntu系统中配置MIPS调试运行环境
设置断点之后执行r命令后输入continue,在另一个终端运行,此终端用来调试。
利用QEMU+GDB在ubuntu系统中配置MIPS调试运行环境
继续调试:
利用QEMU+GDB在ubuntu系统中配置MIPS调试运行环境

相关标签: mips