当前位置:   article > 正文

VSCode C++ 调试方法_vscode c++调试

vscode c++调试

VSCode 调试 C++ 主要就是 .vscode 中的 launch.json 和 tasks.json 的配置。

launch.json 可以通过 vscode 界面 ——》左侧调试功能按钮——》创建 launch.json ——》C++(GDB/LLDB)生成。

其中 launch.json 默认配置如下,主要配置项说明:

  • name:启动项的名字
  • program:指向最终生成的可执行文件的路径
  • args:执行时的输入参数
  • stopAtEntry:自动在 main 函数时停止
  1. {
  2. "version": "0.2.0",
  3. "configurations": [
  4. {
  5. "name": "C/C++: g++ build and debug active file",
  6. "type": "cppdbg",
  7. "request": "launch",
  8. "program": "${fileDirname}/${fileBasenameNoExtension}",
  9. "args": [],
  10. "stopAtEntry": false,
  11. "cwd": "${workspaceFolder}",
  12. "environment": [],
  13. "externalConsole": false,
  14. "MIMode": "gdb",
  15. "miDebuggerPath": "/usr/bin/gdb",
  16. "setupCommands": [
  17. {
  18. "description": "Enable pretty-printing for gdb",
  19. "text": "-enable-pretty-printing",
  20. "ignoreFailures": true
  21. }
  22. ],
  23. "preLaunchTask": "C/C++: g++ build active file"
  24. }
  25. ]
  26. }

tasks.json 文件可以通过 vscode 菜单 ——》终端——》配置任务 生成。

其中 tasks.json 默认配置如下,主要配置项说明:

  • command:给出具体编译命令,可以是 /usr/bin/g++,也可以是基于 CMakeLists.txt 直接输入 cmake 命令
  • args:编译命令输入参数
  • group.isDefault:是否为默认编译方式,True 表示默认使用此编译选项
  1. {
  2. "version": "2.0.0",
  3. "tasks": [
  4. {
  5. "type": "shell",
  6. "label": "C/C++: g++ build active file",
  7. "command": "/usr/bin/g++",
  8. "args": ["-g", "${file}", "-o", "${fileDirname}/${fileBasenameNoExtension}"],
  9. "options": {
  10. "cwd": "/usr/bin"
  11. },
  12. "problemMatcher": ["$gcc"],
  13. "group": {
  14. "kind": "build",
  15. "isDefault": true
  16. },
  17. "detail": "Task generated by Debugger."
  18. }
  19. ]
  20. }

CMakeLists.txt 方式

如果使用 CMakeLists.txt,需要在 CMakeLists.txt 中添加如下行,从而以 Debug 方式(一共有以下方式:Debug Release RelWithDebInfo 和 MinSizeRel)编译。

  1. SET(CMAKE_BUILD_TYPE "Debug")
  2. SET(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g -ggdb")
  3. SET(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O3 -Wall")

tasks.json 配置中对应 command 修改如下

  1. {
  2. "version": "2.0.0",
  3. "tasks": [
  4. {
  5. ...
  6. "command": "cmake . -B build -DCMAKE_BUILD_TYPE=Debug;cmake --build build --target main --config Debug -j",
  7. "args": [],
  8. ...
  9. ]
  10. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/65816
推荐阅读
相关标签
  

闽ICP备14008679号