Java教程

qemu对ARM程序gdb调试

本文主要是介绍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对ARM程序gdb调试的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!