断点调试在【排查代码错误】时,发挥着巨大的作用!本文旨在使用VS Code实现对CMake工程项目的【断点调试】。

初始状态

假设我们已经有一个CMake工程项目(比如从github上直接下载并做了一些修改),且我们可以保证能够编译、运行(换言之,能保证无语法错误,但不能保证无逻辑错误)。

mkdir build && cd build
cmake ..
make -j2
./run_test

以上命令在终端中输入、被(一气呵成从头至尾地)执行。
此时,我们的目标是,在VS Code中实现设置断点,并在运行时停在此处!

两步走!

第一步: 修改CMakeLists.txt中相应语句为Debug模式。
【例】原语句可能在Release模式,如下:

set(CMAKE_BUILD_TYPE "Debug")
set(CMAKE_CXX_FLAGS_RELEASE "-O3 -Wall -g")

则,保证修改后为:

set(CMAKE_BUILD_TYPE "Release")
set(CMAKE_CXX_FLAGS_DEBUG "-O0 -Wall -g -ggdb")

该步骤亦应通过在终端输入编译、运行指令,检验并确保无误。

第二步: 在VS Code中配置一个launch.json文件
先上一张结果图,以清晰阐述该过程!

VSCode断点调试CMake工程项目的实现步骤

从图中可以看出,分成了三小步:

a. 配置lauch.json,依次点击黄色框中的“小虫子”和“齿轮”,将打开一个lauch.json的模板。而我们只需要修改其中的一行命令:

"program": "${workspaceFolder}/build/estimate_depth" // 是可执行文件所在的位置

ps. 整个launch.json文件的图片放在了文末。

b. 点击如图位置的build,编译CMake工程项目。

c. 打好断点,运行即可。如图程序停在了断点位置(ps.单步执行了一次,故停在了断点后一行)。

VSCode断点调试CMake工程项目的实现步骤

参考博文:利用VScode和cmake编译构建C++工程代码

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。