qemu对ARM程序gdb调试

docker创建

由于我是在docker里进行调试,首先要创建一个docker

docker run --cap-add=SYS_PTRACE --security-opt seccomp=unconfined -itd --gpus all --name [your_dockername] -p [port]:22 ubuntu:18.04-ssh /bin/bash

一定要加:--cap-add=SYS_PTRACE --security-opt seccomp=unconfined 不然在gdb调试的时候会报warning: warning: Error disabling address space randomization: Operation not permitted

安装qemu

sudo apt-get install qemu qemu-arm-static qemu-kvm-extras

安装交叉编译工具链

下载网址:http://releases.linaro.org/components/toolchain/binaries/7.1-2017.05/arm-linux-gnueabi/

将下载的文件解压到 /usr/local/arm_toolchain

配置环境变量PATH:打开~./bashrc,在最后添加PATH=$PATH:/usr/local/arm_toolchain/arm-linux-gnueabi/bin

最后 source ~./bashrc

arm程序的调试

运行qemu仿真器,在终端输入指令等待调试:qemu-arm -g 1234 [your_arm_program]

再开一个终端利用arm-linux-gdb进入调试器,并通过端口1234连接到qemu-arm等待调试的程序:

arm-linux-gnueabi-gdb [your_arm_program]
(gdb) target remote localhost:1234
(gdb) ...
上一篇:关于QEMU/KVM中无法开启eth0网卡解决方法


下一篇:KVM入门