本仓库包含了北航os 2025的实验代码(exam extra shell-challenge)
- 强烈建议将课程仓库克隆到本地,使用wsl + vscode进行实验开发。
- 使用现代ide能大大提高实验舒适感
- 善用AI
-
本地vscode符号无法正确识别跳转
-
下载clangd插件(本地需要安装clangd)
-
生成对应的
compile_commands.json文件sudo apt install bear bear -- make # 或者 make test=xxx -
删除不必要的编译选项
sed -i '/-march=4kc/d' compile_commands.json sed -i '/-mno-fix-r4000/d' compile_commands.json
-
vscode
ctrl+shift+p打开命令面板,输入clangd: Restart Language Server重启语言服务器
-
-
vscode 如何debug
- 安装C/C++插件(禁用代码补全,启用clangd插件提供的)
- 在
.vscode目录下创建launch.json文件 注意"miDebuggerServerAddress"字段的端口需要与Makefile中dbg_run下配置的端口相同。 默认是1234端口,但是容易被占用,建议修改
- 命令行运行
这会启动qemu并等待gdb连接
make dbg_run
- 在vscode中按
F5开始调试 - 在DEBUG CONSOLE中添加对应的符号文件,例如
-exec add-symbol-file ./user/sh.b
-
拉取自己的gitlab仓库不知道密码
- 使用ssh
exam 和 extra可以通过查看对应的test文件大致了解实验内容
除了lab0的extra不为正确的实现,其他实验的exam extra或对应的offline均为正确的实现(拿到所有分数)。
offline分支为实验的离线版本,我会将对应的题面放到该的分支下。
挑战性任务选择的是shell,也拿到了所有分数。