关于VScode中GDB调试和cmake配合使用的方法
关于VScode调试GDB的说明
Hello,各位看官好,小弟最近在做嵌入式的项目,那么嵌入式的项目有三个很重要的工具,一个就是VScode,一个就是GDB,还有一个就是CMake工具。但是如果只是单纯的用GDB调试会有一个问题,那就是没办法跟代码一起调试,所以我们需要将这三者配合起来使用。下面我就根据我自己的项目配合的来说一下怎么配置。
一、 关于CMAKE的配置方法
CMAKE是编译工具,因此需要调整两个部分,其一是修改开关CMAKE_BUILD_TYPE,简单来说就是将其设置成Debug,其二就是设置CMAKE_CXX_FLAGS_DEBUG,里面需要添加开关-g。
二、 关于VScode的配置方法
在VScode中,最核心的就是增加launch.json这个配置文件,这个文件所代表的就是我们调试时候所需要的命令。我们可以参照下图来填写。
{
1、
2、 "version": "0.2.0",
3、
4、 "configurations": [
5、 {
6、
7、 "name": "(gdb) example",
8、
9、 "type": "cppdbg",
10、
11、 "request": "launch",
12、
13、 "program": "${workspaceFolder}/build/bin/example", //此路径更改为最终生成的可执行文件路径以及可执行文件名称
14、
15、 "args": ["calculate","add"],
16、
17、 "stopAtEntry": false,
18、
19、 "cwd": "${workspaceFolder}",
20、
21、 "environment": [],
22、
23、 "externalConsole":false,//将此处的true改为false,不然他会调用系统的终端进行现实
24、
25、 "MIMode": "gdb",
26、
27、 "setupCommands": [
28、
29、 {
30、
31、 "description": "Enable pretty-printing for gdb",
32、
33、 "text": "-enable-pretty-printing",
34、
35、 "ignoreFailures": true
36、
37、 }
38、
39、 ],
40、
41、 }
42、
43、 ]
这里对参数做一个简要说明,比较常见的几个参数分别是program,args,stopAtEntry,externalConsole这几个变量。
Program:代表我们运行时候所代表的路径以及可执行文件
Args:代表我们运行时所代表着的参数,多个参数用逗号隔开
StopAtEntry:选择false代表我们可以手写断点,否则在main开始的时候停下来
externalConsole:选择false其不会在终端显示出来。