完全是方便自己查询,做个记录。

树莓派4的SOC是ARM64, cortex A72,支持最新的ARMv8指令集,且有众多的开源资料,适合用来学习ARM64汇编,其他芯片大同小异,遇到需要,再进一步研究qemu支持的芯片;

最新版官方qemu尚未支持树莓派4, 这里直接采用笨叔提供的qemu工具

1.测试代码test.S

.global _start
_start:mov x1,0x80000mov x3,16ldr x0,[x1]ldr x2, [x1,#8]ldr x4, [x1,x3]ldr x5, [x1,x3,lsl #3]

2. 编译

makefile文件

ARMGNU ?= aarch64-linux-gnu
test.elf: test.o$(ARMGNU)-ld -Ttext 0x0  -o test.elf   $^
%.o : %.S$(ARMGNU)-gcc  -o $@ $<  -g  -c
clean:rm *.o *.elf    -f

3.qemu模拟调试

由于qemu自带gdb_server,这里用gdb来单步调试

3.1 启动qemu

qemu-system-aarch64 -machine raspi4 -nographic -kernel test.elf -S -s

3.2 再开一个终端,启动gdb,链接qemu

gdb-multiarch --tui benos.elf

链接gdb_server

``
查看寄存器值

3.3 用eclipse可视化环境调试

(1).创建一个新工程test,添加带调试信息的程序test.elf,配置如下:

链接成功后,启动gdb,可以方便查看寄存器或变量值如下:

用QEMU模拟调试裸机ARM64汇编,支持gdb单步调试相关推荐

  1. 第19部分- Linux x86 64位汇编GDB单步调试

    第19部分- Linux x86 64位汇编GDB单步调试 本篇我们使用gdb来调试上篇中的汇编代码. gdb调试 使用gdb进行调试. #gdb ./addsum_arg 设置参数: (gdb) s ...

  2. linux单步调试方法,linux下gdb单步调试(中).doc

    linux下gdb单步调试(中) linux下gdb单步调试(中) linux下gdb单步调试(中) 一.设置断点( BreakPoint ) 我们用 break 命令来设置断点.正面有几点设置断点的 ...

  3. android平台从froyo 2.2开始支持jni单步调试了

    一.写在前面的话(可以理解为废话) 前段时间从网上看了google的io大会,亲眼看到了google在it技术发展和创新领域所做的工作(在此也问候一下apple公司的美术家门,你们辛苦了).虽然goo ...

  4. Emacs + gdb单步调试汇编代码

    1.编译 # gcc -g test.c -o test2.使用emacs单步调试汇编和C对照 # emacs M-x gdb M-x gdb-many-windows //把某个窗口替换成反汇编或者 ...

  5. linux下gdb单步调试

    用 GDB调试程序 GDB 概述 ---- GDB 是 GNU开源组织发布的一个强大的 UNIX下的程序调试工具.或许,各位比较喜欢那种图形界面方式的,像 VC. BCB等 IDE的调试,但如果你是在 ...

  6. android studio 单步调试jni,android studio实现Jni单步调试-标准配置教程

    本文主要介绍在android studio下实现jni单步调试时,所需要的配置及其步骤,这些也是本人经过几天折腾慢慢实现的,先提供给大家做参考: 1,配置是在mac下android studio实现的 ...

  7. vscode怎么单步调试不了php,vscode如何单步调试

    vscode如何单步调试? vscode单步调试 VScode配置 0.快捷键Ctrl + ` 打开默认终端; Ctrl + Shift + ` 新建新的终端; Ctrl + Shift + Y 打开 ...

  8. 如何在vscode上调试php,如何用vscode进行单步调试

    快捷键Ctrl + ` 打开默认终端; Ctrl + Shift + ` 新建新的终端; Ctrl + Shift + Y 打开调试控制台,然后再自行切换终端选项; ps: ` 在键盘数字1的左边. ...

  9. Linux下使用gdb单步调试C语言

    前言: 本文主要在于对学习内容总结备份.方便日后查询.个人学习后的操作总结,都是可行的,如有不足,欢迎改正:此外,本文内容有来自网络.书籍.手册,本人思考总结.如若侵权之处望告知,一定删帖致歉. 主要 ...

最新文章

  1. PHP文件上传和文件操作案例
  2. java 图片合成 工具类_Java实现的图片上传工具类完整实例
  3. SAP QM Batch to Batch的转移过账事务中的Vendor Batch
  4. linux系统学习之vi编辑
  5. 设计模式笔记——生成器模式(Builder Pattern)
  6. java数据结栈空的条件表达式_数据结构——栈和队列例题
  7. 接线端子冲击和振动测试要求
  8. 计算机无法安装网卡驱动,网卡驱动安装不了,详细教您解决网卡驱动安装不了...
  9. 码力十足学量化|如何获取指数成分股及权重数据
  10. 《Java并发编程的艺术》一一2.1 volatile的应用
  11. XSS线上靶场---haozi
  12. JAVA基础-java继承类实现
  13. Build-dep linux 知乎,apt-get build-dep十分有用的命令
  14. hello yocto
  15. new(创建)一个对象时都发生了什么?
  16. 2019年Linux运维工程师的高薪出路在哪
  17. linux上数据库账号被锁定,ORA-28000账户被锁和解锁
  18. 基于安卓android studio 的 菜谱食谱APP设计
  19. 连接mongodb提示目标计算机拒绝,MongoDB 由于目标计算机积极拒绝,无法连接 2014-07-25T11:00:48.634+0...
  20. Windows 启用 IIS

热门文章

  1. 一年之前,一年之后。
  2. 第8课:彻底实战详解使用IDE开发Spark程序
  3. Ambire钱包:专注DeFi的高智能乐高
  4. MySQL创建数据库指定编码和排序规则,mysql数据库密码重置
  5. 获取本地IP地址信息,请求地址,请求的操作系统信息 ,浏览器信息
  6. computed属性
  7. mysql视图和中间表_视图和中间表
  8. gradle介绍,简单易学
  9. 未能完成该操作pkdownloaderror错误8_未能恢复iphone发生未知错误4000
  10. 51nod 1549 上传说