Use TinyCC to write C programs in the (milkv-duo) development board for debugging

TinyCC Debugging Tool - TinyCC

1. Uploading milkv-duo-tinycc.zip to the development board system installation through SSH


This is a companion discussion topic for the original entry at http://forum.sophgo.com/t/use-tinycc-to-write-c-programs-in-the-milkv-duo-development-board-for-debugging/341

111

编辑一个C代码 ,使用命令: vi a.c

int main()
{
 int i = 9;
 i++;
 i*=i;
 return i;
}

使用 tcc 编译 a.c,运行程序,使用 echo $? 显示结果

tcc -g a.c 
./a.out 
echo $?
100

使用 GDB 调试和学习 RISCV汇编代码

  • 设置断点: break main 简写 b main
  • 运行程序: run 简写 r
  • 列出源代码: list 简写 l
  • 执行下一行代码: next 简写 n
  • 查看函数变量: info locals 简写 i locals
  • 查看汇编代码: disassemble 简写 disas 可以 /rm 参数 查看机器代码和源码块

如图,输入红色方框的简写命令,查看了刚才这个程序的RISCV汇编代码和机器代码

GDB 可以使用脚本自动化调试,

  • 新建一个 vi x.gdb ,然后使用 gdb -x x.gdb a.out 自动完成上图显示汇编代码的功能
b main
run
disassemble /rm
alias as=disassemble

# alias gdb="gdb -x x.gdb "
  • Shell 环境和 GDB 环境都可以使用 alias ,方便简写命令
  • 例如 alias gdb="gdb -x x.gdb "alias as=disassemble