配置c调试环境
之前也准备设置,但是看着网上的教程太长了,而且照着也没成功就放弃了。今天打算重新配置一遍。
简单配置
配置文件.vscode/launch.json
。只需要配置好这个就ok了。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| { // Use IntelliSense to learn about possible attributes. // Hover to view descriptions of existing attributes. // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "name": "gcc", "type": "cppdbg", "request": "launch", "program": "${fileDirname}/${fileBasenameNoExtension}", "args": [], "stopAtEntry": false, "cwd": "${workspaceFolder}", "environment": [], "externalConsole": false, "MIMode": "gdb", "setupCommands": [ { "description": "Enable pretty-printing for gdb", "text": "-enable-pretty-printing", "ignoreFailures": true } ], "preLaunchTask": "${defaultBuildTask}", "miDebuggerPath": "/usr/bin/gdb" } ] }
|
最后的配置文件就是这样的。
其实没必要去照着网上的教程做,在点击debug的时候,那个选项没有配置好的,它会提醒,然后按照提示去官网找答案会更快。
- 首先是将后面有类似注释的删掉
- 然后他会提示
preLaunchTask
无效,将它设置为${defaultBuildTask}
- 还会提示gdb找不到,我以为linux默认已经安装了的,没想到真的没有安装,所以
pacman -S gdb
安装
- 设置好断点后,在重新运行debug就可以了
复杂一点的配置
前面这种配置已经可以了,只是每次debug的时候都需要选择build task。因为前面的"preLaunchTask": "${defaultBuildTask}"
选择的是默认的,但是默认的为null,所以需要选择。可以配置默认的build task
配置文件.vscode/task.json
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| { "version": "2.0.0", "tasks": [ { "type": "shell", "label": "C/C++", "command": "/usr/bin/gcc", "args": [ "-g", "${file}", "-o", "${fileDirname}/${fileBasenameNoExtension}" ], "options": { "cwd": "${workspaceFolder}" }, "problemMatcher": [ "$gcc" ], "group": "build" } ] }
|
上面的label为C/C++
,所以launch.json
中也要修改为这个,其他不变
1
| "preLaunchTask": "C/C++",
|
这样设置之后点debug就可以直接运行了。
配置指定文件夹中
如果在一个文件夹下有不同的语言的文件夹,在vscode中需要进入到具体的某一个文件夹下在配置。因为配置文件会默认存在与主目录下,会造成相互覆盖。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| ➜ code tree -a . ├── c │ ├── learn │ ├── learn.c │ ├── tempCodeRunnerFile │ ├── tempCodeRunnerFile.c │ └── .vscode //不同文件夹下的配置文件 │ └── launch.json ├── c++ │ ├── hello │ ├── hello.cpp │ ├── learn │ ├── start │ ├── start.cpp │ ├── tempCodeRunnerFile.cpp │ └── .vscode //不同文件夹下的配置文件 │ └── launch.json
|