命令
riskcv64 gdb调试器安装: https://rcore-os.github.io/rCore-Tutorial-deploy/docs/pre-lab/gdb.html
qemu运行指定单核方式
make CPUS=1 qemu-gdb
安装好后运行
riscv64-unknown-elf-gdb
输入
tui enable
连接到远程去debug:
target remote localhost:26000
声明要debug的文件
file exec.o // 必须是可执行文件,不能是exec.c之类的文件
打断点
b exec # 断点到exec()方法,即当exec方法被调用时停住
或者
b exec.c:53 #断点到exec.c文件53行
向下执行continue:
c
执行下一行:
n
查看断点信息
info b
删除断点
d 删除所有断点
d b 2//? 好像是?删除断点2?
查看堆栈信息
bt
设置默认启动参数
因为每次启动gdb都要打印上述命令,很麻烦,所以在/home/ubuntu/.gdbinit里面配置参数如下:
set confirm off
set architecture riscv:rv64
target remote 127.0.0.1:26000
symbol-file kernel/kernel
set disassemble-next-line auto
tui enable
file kernek/vm.o
总结
耗子哥说,改变世界的是不能忍的人,以前我为了图省事,根本不会想着写脚本,配置参数,可是现在的感觉就是,这种省事更浪费时间,要做有价值的事情,而不是贪图快