QEMU树莓派4+GDB调试方法
  jxI9ntIMuDOy 2023年11月02日 38 0

1.在终端启动QEMU虚拟机的gdbserver

$qemu-system-aarch64 -machine raspi4 -serial null -serial mon:stdio -nographic -kernel benos.bin -S -s

 2.在另一个终端输入如下命令来启动gdbclient

$aarch64-linux-gnu-gdb  –tui  build/benos.elf
或
$gdb-multiarch –tui build/benos.elf

2.1 连接gdbserver

(gdb)target remote localhost:1234

2.2 打开寄存器窗口

(gdb)layout reg

2.3 加载符号表

2.3.1 运行地址=链接地址

可用以下命令显式加载,或者不加载:

(gdb)file build/benos.elf

2.3.2 运行地址≠链接地址

(1)查询段的虚拟地址,计算偏移量

QEMU树莓派4+GDB调试方法_gdb

(2)加载符号表

(gdb)add-symbol-file build/benos.elf  0x80030 -s .text.boot 0x80000 -s .rodata 0x803c8

Ø  运行地址的基地址:0x80000

Ø  0x80030:text段的起始地址

Ø  0x80000:text.boot段的起始地址

Ø  0x803c8:只读数据段的起始地址 

2.4 设置断点,并运行到断点处

(gdb)b ldr_test1
(gdb)c

2.5 单步调试,观察寄存器变化

(gdb)s

 

QEMU树莓派4+GDB调试方法_qemu_02


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  R0Sx2erBMixA   2023年11月02日   32   0   0 javajar加载jar包冲突