• Visual Studio Code使用


    目录

    1.python的调试

    2.c++的运行

    方法1:

    方法2:

    3.c++的调试

    3.1调试方法一:先生成执行文件,再调试

     3.2调试方法二:同时生成执行文件,调试

    4.tasks.json 与launch.json文件的参考

    4.1C++生成执行文件tasks.json文件的参考

    4.2调试文件launch.json的参考

    4.3附录:vs code 中变量解释


    注意:VScode中每修改以此文件要Ctrl + S 进行保存


    简单代码的调试与运行点击左上角的“运行”—>"启动调试"或者“以非调试模式运行”

    或者右上角的小三角,选择调试或运行


    1.python的调试

    点最右边的调试按钮,生成launch.json

    1. {
    2. // 使用 IntelliSense 了解相关属性。
    3. // 悬停以查看现有属性的描述。
    4. // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    5. "version": "0.2.0",
    6. "configurations": [
    7. //python 调试
    8. {
    9. "name": "Python 调试程序: 当前文件", //调试的名字
    10. "type": "debugpy",
    11. "request": "launch",
    12. // "program": "${file}",
    13. "program": "/home/rui/VScode/python1.py", //要调试的文件路径
    14. "console": "integratedTerminal",
    15. "justMyCode": true //是否只调试我们写的代码,如果设为false,表示可以进入第三方库(如pytorch中的库)进行调试
    16. }
    17. ]
    18. }

    将 launch.json文件中的program设置为要调试的文件路径,点击右侧上方的绿色调试按钮即可调试

    注意:绿色按钮旁边的调试可以选择,如选择c++的调试

    2.c++的运行

    方法1:

     c++文件写好之后,要先生成可执行文件,在终端输入:

    1. g++ main.cpp -o main
    2. //其中main.app为文件名,-o表示输出,main表示输出的可执行文件的文件名

     生成可执行文件后,将可执行文件的路径输入终端,即可执行

    方法2:

    点击左上角 “终端” —>“运行生成任务”,出来上述界面,选择第一行右边的齿轮,生成执行文件tasks.json,如下

    1. {
    2. "version": "2.0.0",
    3. "tasks": [
    4. {
    5. "type": "cppbuild",
    6. "label": "C/C++: g++ 生成活动文件",
    7. "command": "/usr/bin/g++",
    8. "args": [
    9. "-fdiagnostics-color=always",
    10. "-g",
    11. "${file}", //要生成的文件本身
    12. "-o",
    13. "${fileDirname}/${fileBasenameNoExtension}" //生成的可执行文件的路径,可以修改
    14. ],
    15. "options": {
    16. "cwd": "${fileDirname}"
    17. },
    18. "problemMatcher": [
    19. "$gcc"
    20. ],
    21. "group": "build",
    22. "detail": "编译器: /usr/bin/g++"
    23. }
    24. ]
    25. }

    生成tasks.json 文件后,再次点击左上角 “终端” —>“运行生成任务”,即可在指定路径下生成可执行文件,将执行文件的路径输入终端,即可运行。

    3.c++的调试

     先生成launch.json文件,点击右下角蓝色的添加配置,选择第二行C/C++: (gdb) 启动,生成c++的launch.json调试文件,如下图

    3.1调试方法一:先生成执行文件,再调试

    首先生成执行文件(见第2节C++的运行),然后将launch.json调试文件中的program路径直接改为执行文件的路径,如下,选择对应的调试名称,点击开始调试

    1. {
    2. // 使用 IntelliSense 了解相关属性。
    3. // 悬停以查看现有属性的描述。
    4. // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    5. "version": "0.2.0",
    6. "configurations": [
    7. {
    8. "name": "(gdb) 启动",
    9. "type": "cppdbg",
    10. "request": "launch",
    11. "program": "/home/rui/VScode/main", //改为执行文件的路径
    12. "args": [],
    13. "stopAtEntry": false,
    14. "cwd": "${fileDirname}",
    15. "environment": [],
    16. "externalConsole": false,
    17. "MIMode": "gdb",
    18. "setupCommands": [
    19. {
    20. "description": "为 gdb 启用整齐打印",
    21. "text": "-enable-pretty-printing",
    22. "ignoreFailures": true
    23. },
    24. {
    25. "description": "将反汇编风格设置为 Intel",
    26. "text": "-gdb-set disassembly-flavor intel",
    27. "ignoreFailures": true
    28. }
    29. ]
    30. }
    31. ]
    32. }

     3.2调试方法二:同时生成执行文件,调试

     如第二节方法2所示,先生成调试文件tasks.json,如下

    1. {
    2. "version": "2.0.0",
    3. "tasks": [
    4. {
    5. "type": "cppbuild",
    6. "label": "C/C++: g++ 生成活动文件",
    7. "command": "/usr/bin/g++",
    8. "args": [
    9. "-fdiagnostics-color=always",
    10. "-g",
    11. "${file}", //要生成的文件本身
    12. "-o",
    13. "${workspaceFolder}/release/${fileBasenameNoExtension}" //生成的可执行文件的路径,可以修改
    14. ],
    15. "options": {
    16. "cwd": "${fileDirname}"
    17. },
    18. "problemMatcher": [
    19. "$gcc"
    20. ],
    21. "group": "build",
    22. "detail": "编译器: /usr/bin/g++"
    23. }
    24. ]
    25. }

    接下来,生成launch.json调试文件,修改launch.json调试文件的内容,如下所示

    主要修改内容:

    1.在configurations中添加 "preLaunchTask",内容设置为设置为tasks.json中的label,

       即"preLaunchTask":  "C/C++: g++ 生成活动文件",该行表示此launch.json调试文件可以生    成执行文件

    2."program"设置为与tasks.json的program一致,即生成可执行文件的路径,不要设置为

        "$ {fileDirname}/${fileBasenameNoExtension}",因为launch.json文件与tasks.json文件的      路径不同,对应的$ {fileDirname}不同,设置为"${workspaceFolder}/release/$                      {fileBasenameNoExtension}"即可

    1. {
    2. // 使用 IntelliSense 了解相关属性。
    3. // 悬停以查看现有属性的描述。
    4. // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    5. "version": "0.2.0",
    6. "configurations": [
    7. {
    8. "name": "(gdb) 启动",
    9. "type": "cppdbg",
    10. "request": "launch",
    11. "program": "${workspaceFolder}/release/${fileBasenameNoExtension}", //与tasks.json的program一致
    12. "args": [],
    13. "stopAtEntry": false,
    14. "cwd": "${fileDirname}",
    15. "environment": [],
    16. "externalConsole": false,
    17. "MIMode": "gdb",
    18. "setupCommands": [
    19. {
    20. "description": "为 gdb 启用整齐打印",
    21. "text": "-enable-pretty-printing",
    22. "ignoreFailures": true
    23. },
    24. {
    25. "description": "将反汇编风格设置为 Intel",
    26. "text": "-gdb-set disassembly-flavor intel",
    27. "ignoreFailures": true
    28. }
    29. ],
    30. "preLaunchTask": "C/C++: g++ 生成活动文件", //设置为tasks.json中的label
    31. }
    32. ]
    33. }

     然后点击绿色调试按钮,开始调试,注意要点到要调试的文件界面,如调试main.cpp文件,在主界面要点到main.cpp文件,如下图所示

    4.tasks.json 与launch.json文件的参考

    4.1C++生成执行文件tasks.json文件的参考

    1. {
    2. "version": "2.0.0",
    3. "tasks": [
    4. {
    5. "type": "cppbuild",
    6. "label": "C/C++: g++ 生成活动文件",
    7. "command": "/usr/bin/g++", // g++的路径
    8. "args": [
    9. "-fdiagnostics-color=always", // 颜色
    10. "-g", // 调试信息
    11. "-Wall", // 开启所有警告
    12. "-std=c++14", // c++14标准
    13. "${file}", // 文件本身,仅适用于C++基础知识教学,无法同时编译所有文件
    14. // "${fileDirname}/*.cpp", // 文件所在的文件夹路径下所有cpp文件
    15. "-o", // 输出
    16. "${workspaceFolder}/release/${fileBasenameNoExtension}" // 文件所在的文件夹路径/release/当前文件的文件名,不带后缀
    17. ],
    18. "options": {
    19. "cwd": "${fileDirname}" // 文件所在的文件夹路径
    20. },
    21. "problemMatcher": [
    22. "$gcc"
    23. ],
    24. "group": {
    25. "kind": "build",
    26. "isDefault": true
    27. },
    28. "detail": "编译器: /usr/bin/g++"
    29. }
    30. ]
    31. }

    4.2调试文件launch.json的参考

    1. {
    2. // 使用 IntelliSense 了解相关属性。
    3. // 悬停以查看现有属性的描述。
    4. // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    5. "version": "0.2.0",
    6. "configurations": [
    7. {
    8. "name": "(gdb) 启动",
    9. "type": "cppdbg", // C++调试
    10. "request": "launch",
    11. "program": "${workspaceFolder}/release/${fileBasenameNoExtension}", // 文件所在的文件夹路径/release/当前文件的文件名,不带后缀
    12. "args": [],
    13. "stopAtEntry": false,
    14. "cwd": "${fileDirname}", // 文件所在的文件夹路径
    15. "environment": [],
    16. "externalConsole": false,
    17. "MIMode": "gdb",
    18. "setupCommands": [
    19. {
    20. "description": "为 gdb 启用整齐打印",
    21. "text": "-enable-pretty-printing",
    22. "ignoreFailures": true
    23. },
    24. {
    25. "description": "将反汇编风格设置为 Intel",
    26. "text": "-gdb-set disassembly-flavor intel",
    27. "ignoreFailures": true
    28. }
    29. ],
    30. "preLaunchTask": "C/C++: g++ 生成活动文件" // tasks.json的label
    31. },
    32. {
    33. "name": "Python: Current File",
    34. "type": "python",
    35. "request": "launch",
    36. "program": "${file}", // 当前文件
    37. // "program": "demo.py", // 指定文件
    38. "console": "integratedTerminal",
    39. "justMyCode": true // false表示可以进入第三方库(如Pytorch)里进行调试
    40. }
    41. ]
    42. }

    4.3附录:vs code 中变量解释

    1. 以:/home/Coding/Test/.vscode/tasks.json 路径为例
    2. ${workspaceFolder} :表示当前workspace文件夹路径,也即/home/Coding/Test
    3. ${workspaceRootFolderName}:表示workspace的文件夹名,也即Test
    4. ${file}:文件自身的绝对路径,也即/home/Coding/Test/.vscode/tasks.json
    5. ${relativeFile}:文件在workspace中的路径,也即.vscode/tasks.json
    6. ${fileBasenameNoExtension}:当前文件的文件名,不带后缀,也即tasks
    7. ${fileBasename}:当前文件的文件名,tasks.json
    8. ${fileDirname}:文件所在的文件夹路径,也即/home/Coding/Test/.vscode
    9. ${fileExtname}:当前文件的后缀,也即.json
    10. ${lineNumber}:当前文件光标所在的行号
    11. ${env:PATH}:系统中的环境变量

  • 相关阅读:
    Redis缓存与从数据取数据性能比较
    Elasticsearch安装配置
    列出连通集
    【谢希尔 计算机网络】第3章 数据链路层
    react批量引入svg图标
    React 快速上手
    码蹄集 - MT3203 - 填坑:骗数据过的~_~
    Spring Boot事件监听机制:原理、实践与优化之道
    Linux网络:网络层IP协议 链路层MAC协议
    Nacos集群部署遇到问题
  • 原文地址:https://blog.csdn.net/weixin_62848630/article/details/138071831