Vscode 调试相关配置记录
最近觉得,在 vscode 里还用命令行 gdb 各种调试其实不太优雅。
毕竟 vscode 自带的调试相当于是给 gdb 来了一个扩展,用起来更舒服一些。
于是找 wqs 神仙学习了一下这玩意儿的工作原理,然后改了改配置文件。
Vscode 的调试依赖于两个文件:launch.json
和 task.json
。
launch.json
的作用主要就是启动调试器(一般都是 gdb),而 task.json
的作用则是执行类似编译,运行一类的任务。
先看一下 launch.json
:
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 |
|
其实也没啥好说的,就看看注释就行,这个是从某个博客复制过来改的,有时间找一下出处。
然后就是,因为开了 O2 调试经常会突然调到令人难以理解的地方,所以还是不开 O2 比较好。
然后再看 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 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 |
|
这里有两种 task,一个是编译源文件,另一个是运行源文件。
后一个 task 依赖于前一个,所以会有 dependsOn
这样的内容。
type 一般来说选 shell 会比较好,因为这样可以让 task 直接在终端里运行,比较符合日常习惯。
presentation
则是运行完之后的一些信息显示之类的,比如 echo
就表示是否显示信息,clear
表示是否情况之前的输出。
panel
则是是否与上一个任务共用终端。
然后记得要在分组里选上 build
,不然 C-S-b
的时候不会出现对应 task 的(
然后这样配置好之后把文件放到对应工作区的 .vscode
目录下,直
接 F5 就能调试了。
调试的时候就在终端里输入,手动使用 gdb 原生命令需要在 Debug console 里,还需要加上 -exec
前缀。
因为 Debug console 其实本质上是给表达式求值用的。
运行的话直接选中对应任务就可以了。
不过这里唯一难受的点是,我修改默认终端为 Git Bash 之后,json 设置里的缺省路径会有 d:
的字样,bash 没法识别。
我还在思考怎么修改让它来适配。