本期内容如下:
- GDB调试概述
- 编译和安装QEMU
- 调试演示
在之前的01-05章我们讲解了RISC-V ISA相关的知识,对RISC-V也已经有个基本的了解,为了加深对RISC-V ISA的理解,光做到看还是不够的,我们还需要动手去编写汇编代码。
GDB工具用于调试编译后的代码;QEMU用于仿真RISC-V处理器,这样我们就可以不需要具体硬件就可以调试我们的汇编代码,对于学习十分方便。
如果,有些人需要在具体硬件上进行仿真调试,我今后还会写一篇文章,介绍如何使用JTAG在linux上进行硬件调试的文章,还请关注。
![0b6ac2a57f4c5406fd51b449b3b24752.png](https://img-blog.csdnimg.cn/img_convert/0b6ac2a57f4c5406fd51b449b3b24752.png)
一、GDB调试概述
GNU symbolic debugger,简称「GDB 调试器」,是 Linux 平台下最常用的一款程序调试器。GDB 编译器通常以 gdb 命令的形式在终端(Shell)中使用。作为程序员,编写和调试程序是必备的技能,为此学好gdb是十分有必要的,还请读者自行查阅相关文档,在这里就不对gdb功能进行过多展开了。
在RISC-V的开发过程中,我们用的gdb工具被包含在工具链中,文件名类似于riscv-none-embed-gdb。在这里我们简单了解一下gdb的基本指令。
- riscv-none-embed-gdb 执行文件名称 ---------------gdb加载符号文件,用于后续的调试
- run ----------------此命令使程序开始运行
更多指令参见图1.
![b64c05d3749d37cfbb5192ebe428c210.png](https://img-blog.csdnimg.cn/img_convert/b64c05d3749d37cfbb5192ebe428c210.png)
图1 GDB常用指令
二、编译,安装和使用QEMU
由于不同的linux发行版本,在软件上兼容性可能会存在一些问题,这里仅介绍如何在linux上,进行RISC-V的QEMU编译和安装,并没有提供已经编译好的qemu-riscv32,我这里采用的操作系统为deepin-v20,其