您的位置 首页 新能源

ARM汇编指令调试办法

学习ARM汇编时,少不了对ARM汇编指令的调试。作为支持多语言的调试器,gdb自然是较好的选择。调试器工作时,一般通过修改代码段的内容构造t…

学习ARM汇编时,少不了对ARM汇编指令的调试。作为支撑多语言的调试器,gdb自然是较好的挑选。调试器作业时,一般经过修正代码段的内容结构trap软中止指令,完成程序的暂停和程序履行状况的监控。为了在x86平台上履行ARM指令,能够运用qemu模拟器履行ARM汇编指令。

一、预备ARM汇编程序

首要,咱们结构一段简略的ARM汇编程序作为测验代码main.s。

.globl _start_start:mov R0,#0swi	0x00901

以上汇编指令完成了0号体系调用exit的调用。mov指令将体系调用号传入寄存器R0,然后运用0x00901软中止堕入体系调用。

为了运转ARM汇编代码,需求运用穿插编译器arm-linux-gcc对ARM汇编代码进行编译。下载穿插编译器装置结束后,对ARM汇编代码进行编译。

arm-linux-gcc main.s -o main -nostdlib

编译选项“-nostdlib”表明不运用任何运转时库文件,编译生成的可履行文件main只能在ARM体系结构的体系上运转。

二、编译装置qemu模拟器

为了x86的Linux体系内运转ARM体系结构的可履行程序,需求装置qemu模拟器。

首要下载qemu源码,然后确保体系现已装置了flex和bison。

编译装置qemu。

./configure --prefix=/usrsudo make && make install

然后运用qemu的ARM模拟器履行ARM程序。

qemu ./main

三、编译装置arm-gdb

为了调试ARM程序,需求运用gdb的源码编译生成arm-gdb。

首要下载gdb源代码,编译装置。

./configure --target=arm-linux --prefix=/usr/localsudo make && make install

为了和体系的gdb防止抵触,咱们将gdb的装置目录装置到/usr/local,然后树立软链接即可。

ln -s /usr/bin/arm-gdb /usr/local/gdb/gdb

之后便能够运用arm-gdb指令调试ARM程序了。

四、调试ARM程序

首要运用qemu翻开长途调试端口。

qemu-arm -g 1024 ./main

然后导出环境变量QEMU_GDB。

export QEMU_GDB=/usr/local/gdb

最终,进入gdb调试。

arm-gdb ./main

进入arm-gdb后,首要衔接长途调试端口。

(gdb) target remote localhost:1024

然后运用gdb常用的调试指令调试代码即可。

(gdb) disassemble			// 检查反汇编(gdb) x /8xw 0x0808e		// 检查内存(gdb) info register			// 检查寄存器(gdb) continue				// 持续履行(gdb) stepi					// 汇编级逐进程(gdb) nexti					// 汇编级逐句子

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qiche/xinnengyuan/277079.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部