使用Clion和qemu调试操作系统

首先修改编译选项,在gcc编译选项里加入-g 用于将调试信息嵌入到可执行文件中

然后链接脚本中的/DISCARD/部分如果有跟调试信息相关的部分也要去掉(建议直接去掉/DISCARD/部分)

 

 

然后配置Clion的远程调试选项

在运行调试选项里选择GDB Remote Debug

target remote实参填上tcp:ip地址:1234(这里我的qemu是在虚拟机中运行的,如果你的clion和qemu在同一个环境下,ip就填127.0.0.1)

符号文件选择刚刚编译的二进制文件(注意文件的位置,要根据使用的gdb所在的来判断,如果使用的本地的gdb就需要把编译的二进制文件下载到本地,如果是远程的gdb,就可以填入远程的二进制文件位置,这时候不用管clion的错误信息)

 

在qemu的运行参数里加上

-S    启动时会暂停虚拟机

-s    相当于-gdb tcp::1234,也就是在1234端口打开gdb的tcp连接

完成后重新编译并打开qemu,qemu会自动暂停等待

然后在clion的断点调试窗口设置符号断点

 

注意这里只需要写函数名,其它的不要写,否则断点处不会暂停

再启动调试

就可以看到效果了

 

posted @ 2022-02-10 11:57  PetricV587  阅读(825)  评论(0)    收藏  举报