【1000个GDB技巧-011】-vscode调试模式添加配置不显示cppdbg如何处理

文章讲述了在VisualStudioCode中使用gdb调试Linux内核时,遇到的问题,即使用Beyond的GDBDebug、KGDB、NativeDebug等插件无效。解决方法包括在launch.json中添加特定配置,激活cppdbg功能,并解释了VSCode代码片段自动补全原理。

Linux kernel通过gdb 在vsc debug vmlinux,使用这三个插件似乎都不行:

Beyond的GDB Debug、KGDB、Native Debug

只有微软自己开发的C/C++插件提供的才可以

C/C++ debug在调试窗口调试kernel 需要依赖cppdbg的type,但是初次使用通过图中添加配置看不到标注2的这几个选项。之后后面的GDB:Attach to PID(这个是GDB Debug的,type是gdb)

问题现象:

如何解决?

需要三步才能能自动解决这个问题,估计是vsc默认没有激活该功能。

第一步:拷贝下面这段到launch.json中

{
  "name": "C++ Launch",
  "type": "cppdbg",
  "request": "launch",
  "program": "${workspaceFolder}/a.out",
  "args": ["arg1", "arg2"],
  "environment": [{ "name": "config", "value": "Debug" }],
  "cwd": "${workspaceFolder}"
}

参考:

### 如何在 VSCode 中设置和添加调试配置 #### 添加调试配置 当需要为项目添加调试功能时,在VSCode界面内,可通过点击位于左侧面板的调试图标进入调试视图。随后,点击上方齿轮图标即“Add Debug Configuration”,这一步骤将会触发创建一个新的`launch.json`文件于`.vscode`目录之下[^1]。 对于C/C++项目的具体调试配置而言,选择`(gdb) 启动`这一项能够确保生成适用于此类编程语言的默认调试模板。此操作完成后,开发者可以在`.vscode/launch.json`中进一步自定义所需的参数来满足特定需求,比如指定程序入口、传递命令行参数或是设定工作路径等。 #### 安装必要的扩展 为了更好地支持C/C++开发以及调试过程,建议安装一系列官方推荐的相关工具与插件,包括但限于: - **C/C++ 扩展包**:提供语法高亮显示、智能感知等功能; - **CMake Tools**:用于管理基于CMake构建系统的项目结构及其依赖关系; - **其他辅助类插件**:如代码格式化工具、主题美化方案等可根据个人喜好选配[^3]。 这些组件仅有助于提高编码效率,还能增强IDE的功能性和用户体验感。 #### 开始调试会话 完成上述准备工作之后,可以通过多种方式启动一次新的调试流程。最常用的方法之一就是按下键盘上的F5键;另一种则是通过顶部菜单栏中的“运行”-> “启动调试”。一旦进入了实际的调试模式,则可以利用诸如单步执行、查看变量值变化之类的特性来进行问题排查[^4]。 ```json { "version": "0.2.0", "configurations": [ { "name": "(gdb) Launch", "type": "cppdbg", "request": "launch", "program": "${workspaceFolder}/build/main.out", "args": [], "stopAtEntry": false, "cwd": "${workspaceFolder}", "environment": [], "externalConsole": true, "MIMode": "gdb" } ] } ``` 这段JSON片段展示了典型的C/C++应用程序调试配置实例,其中包含了目标可执行文件的位置(`${workspaceFolder}/build/main.out`)以及其他一些重要的属性设置。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值