九月 29, 2020

使用 qemu 构建 multiarch 调试环境

最近需要一个环境调试一些非 x86 的二进制和学习一下其他体系架构的汇编,最基本的思路是 qemu 启动 qcow2 虚拟机(如果需要模拟调试路由器等设备,可能需要这种办法,现成的 qcow2 镜像可以从类似 https://people.debian.org/~jcowgill/qemu-mips/ 的地方找到),但是我觉得有点太麻烦了, 学习汇编其实只需要一个干净的 rootfs 和 runtime 就行了,并不需要虚拟机提供的 I/O 虚拟化、网络、显示和外设等。

本文将简要讨论在 qemu 的支持下,通过 debootstrap + chroot / 容器等方法构建其他指令集架构的系统基本环境,并使用 gdb-multiarch 等工具进行交叉编译、调试。