Vscode调试Linux内核
使用Vscode调试Linux内核
上一篇博客我们在虚拟机中编译了Linux内核,并且使用Qemu和gdb进行调试,但是gdb的指令我还不熟练,还是想用vscode来调试,这样也更加方便
Vscode插件安装
remote-ssh
安装完成后右边工具栏会多出一个功能
按F1呼出对话框,输入remote-ssh
,选择open ssh configuration file。
选择第一个配置文件
1 | Host 自定义连接名称 |
C/C++
安装C/C++插件
依次点击【运行】->【打开配置】,将以下配置复制到launch.json中。
该代码不需要更改,直接粘贴
1 | { |
Vscode调试
在虚拟机中启动qemu
在Linux内核文件夹下运行此命令
1 | qemu-system-x86_64 -kernel ./arch/x86/boot/bzImage -initrd ../initramfs.cpio.gz -append "nokaslr console=ttyS0" -s -S -nographic |
打断点
打开init/main.c,我打了如下的断点
调试
然后在vscode中就可以看到调试结果了
代码中标红的问题
代码标红是缺少compile_commands.json文件
我在B站上学习的时候,是跟着这位up主来的(源码被猫吃了),他的解决方案如下:
在终端键入命令
1 | ./scripts/clang-tools/gen_compile_commands.py |
在源码目录下就生成了compile_commands.json
文件
在vscode中:ctrl+shipt+p
选择C/C++:Edit Coonfigurations,
在c_cpp_properties.json
1 | { |
此后,main.c中的代码就不标红了
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 欢迎来到酷狗的个人博客!