赞
踩
VSCode 调试 C++ 主要就是 .vscode 中的 launch.json 和 tasks.json 的配置。
launch.json 可以通过 vscode 界面 ——》左侧调试功能按钮——》创建 launch.json ——》C++(GDB/LLDB)生成。
其中 launch.json 默认配置如下,主要配置项说明:
- {
- "version": "0.2.0",
- "configurations": [
- {
- "name": "C/C++: g++ build and debug active file",
- "type": "cppdbg",
- "request": "launch",
- "program": "${fileDirname}/${fileBasenameNoExtension}",
- "args": [],
- "stopAtEntry": false,
- "cwd": "${workspaceFolder}",
- "environment": [],
- "externalConsole": false,
- "MIMode": "gdb",
- "miDebuggerPath": "/usr/bin/gdb",
- "setupCommands": [
- {
- "description": "Enable pretty-printing for gdb",
- "text": "-enable-pretty-printing",
- "ignoreFailures": true
- }
- ],
- "preLaunchTask": "C/C++: g++ build active file"
- }
- ]
- }
tasks.json 文件可以通过 vscode 菜单 ——》终端——》配置任务 生成。
其中 tasks.json 默认配置如下,主要配置项说明:
- {
- "version": "2.0.0",
- "tasks": [
- {
- "type": "shell",
- "label": "C/C++: g++ build active file",
- "command": "/usr/bin/g++",
- "args": ["-g", "${file}", "-o", "${fileDirname}/${fileBasenameNoExtension}"],
- "options": {
- "cwd": "/usr/bin"
- },
- "problemMatcher": ["$gcc"],
- "group": {
- "kind": "build",
- "isDefault": true
- },
- "detail": "Task generated by Debugger."
- }
- ]
- }
如果使用 CMakeLists.txt,需要在 CMakeLists.txt 中添加如下行,从而以 Debug 方式(一共有以下方式:Debug Release RelWithDebInfo 和 MinSizeRel)编译。
- SET(CMAKE_BUILD_TYPE "Debug")
- SET(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g -ggdb")
- SET(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O3 -Wall")
tasks.json 配置中对应 command 修改如下
- {
- "version": "2.0.0",
- "tasks": [
- {
- ...
- "command": "cmake . -B build -DCMAKE_BUILD_TYPE=Debug;cmake --build build --target main --config Debug -j",
- "args": [],
- ...
- ]
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。