个人记录 MIT 6.S081 在 使用 WSL 在 Clion 中配置XV6代码跳转和Debug

230 阅读2分钟

一直苦于xv6中不能正确的识别跳转,导致看源码非常不方便,网上有vscode的教程,但是我又不习惯vscode所以望而止步。经过一番查阅加上自己的尝试配置了一下,现在已经支持大部分代码正确的跳转了,并且debug也可以尽可能的用clion自带的图形化了。配置项目的正确的跳转,clion 对 cmake 支持不错,但是 makefile 也是官方支持的,但是配置起来稍微麻烦一点,不过有 wsl2

克隆xv6项目,之后打开项目,这里可能会出现Project is not configured 这个警告,点击黄色警告框的右侧,依次选择 Fix >> Select makefile image.png

这时会弹出一个框,选择项目根目录下的Makefile image.png

安装wsl和相关环境,设置make的执行地址 image.png

打开makefile设置,这里工具链改为 wsl,build target 改为qemu,clean 还是 clean image.png

配置wsl为默认的工具链。这些不用自己填,clion会帮我们查找 (wsl上需要安装一些常用的编译依赖) image.png

这里就配置好了,保存设置。之后右上角有一个M+刷新的图标,点击来进行构建项目,这样clion会帮我们分析项目建立符号表等 image.png

这时会弹出一个对话框,点击ok确认执行 image.png

完成了上面这些配置完成了跳转部分 ,这样就可以正确的自动跳转了,而不是跳到头文件中去。

Debug 部分

用命令行gdb调试虽然酷炫,但是对新手还是不太友好,利用上图形化还是可以简化一些事情。

新建一个remote debug image.png

地址填入wsl的地址,在wsl中使用 ip a 命令查看,符号文件需要先执行一次make qemu-gdb 之后才会有,debugger最好选用bundled gdb (6s081中有指导如何安装这些依赖在wsl中)而不是wsl版本。最后按下ok完成。 image.png

开一个命令行窗口 先执行make qemu-gdb来启动一个qemu-gdb服务在wsl中。打上一个断点,最后按下右上角刚刚配置好的xv6_debug按钮就可以调试了 image.png