美文网首页
VSCode调试Linux下C程序

VSCode调试Linux下C程序

作者: 7644a0b8b5cd | 来源:发表于2019-06-26 07:57 被阅读0次

    win10下可以自己安装WSL,它是一个Linux系统,安装非常方便,直接在CMD中输入WSL即可进入Linux环境。
    利用VSCode可以方便的使用WSL里面的GCC, GDB等C语言编译调试环境,省去了在windows下安装Cygwin这样
    的软件的麻烦,还可以体验纯Linux环境下的C语言编程。

    下面介绍配置方法:

    Windows下程序目录:c:\users\myname\leetcode\CCPlus

    WSL下程序目录:\home\myname\leetcode\CCPlus

    在Windows的CCPlus目录下的.vscode目录下,保证有如下文件:

    • c_cpp_properties.json 配置头文件包含
    • launch.json 配置运行环境
    • tasks.json 配置调试环境
    • settings.json (可选)本工程的vscode自定义配置

    c_cpp_properties.json:

    {
        "configurations": [
            {
                "name": "Win32",
                "includePath": [
                    "${workspaceFolder}/**"
                ],
                "defines": [
                    "_DEBUG",
                    "UNICODE",
                    "_UNICODE"
                ],
                "compilerPath": "/usr/bin/g++",
                "cStandard": "c11",
                "cppStandard": "c++17",
                "intelliSenseMode": "gcc-x64"
            }
        ],
        "version": 4
    }
    

    launch.json

    {
        // Use IntelliSense to learn about possible attributes.
        // Hover to view descriptions of existing attributes.
        // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
        "version": "0.2.0",
        "configurations": [
            {
                "name": "(gdb) Launch",
                "type": "cppdbg",
                "request": "launch",
                "program": "/home/feifei/leetcode/CCPlus/main.out",
                "args": ["-fThreading"],
                "stopAtEntry": true,
                "cwd": "/home/feifei/leetcode/CCPlus/",
                "environment": [],
                "externalConsole": true,
                "windows": {
                    "MIMode": "gdb",
                    "miDebuggerPath": "/usr/bin/gdb",
                    "setupCommands": [
                        {
                            "description": "Enable pretty-printing for gdb",
                            "text": "-enable-pretty-printing",
                            "ignoreFailures": true
                        }
                    ]
                },
                "pipeTransport": {
                    "pipeCwd": "",
                    "pipeProgram": "c:\\windows\\sysnative\\bash.exe",
                    "pipeArgs": ["-c"],
                    "debuggerPath": "/usr/bin/gdb"
                },
                "sourceFileMap": {
                    "/mnt/c": "${env:systemdrive}/",
                    "/usr": "C:\\Users\\FF120\\AppData\\Local\\Packages\\KaliLinux.54290C8133FEE_ey8k8hqnwqnmg\\LocalState\\rootfs\\usr\\"
                },
                "preLaunchTask" : "build"
            }
        ]
    }
    

    tasks.json

    {
        "version": "2.0.0",
        "windows": {
            "options": {
                "shell": {
                    "executable": "c:\\windows\\sysnative\\bash.exe",
                    "args": ["-c"]
                }
            }
        },
        "tasks": [
            {
                "label": "build",
                "type": "shell",
                "command": "g++",
                "args": [
                    "-g",
                    "-o",
                    "/home/feifei/leetcode/CCPlus/main.out",
                    "main.cpp"
                ],
                "group": {
                    "kind": "build",
                    "isDefault": true
                },
                "problemMatcher": [],
            }
        ]
    }
    

    setting.json

    {
        "files.associations": {
            "iostream": "cpp",
            "array": "cpp",
            "*.tcc": "cpp",
            "cctype": "cpp",
            "clocale": "cpp",
            "cmath": "cpp",
            "cstdint": "cpp",
            "cstdio": "cpp",
            "cstdlib": "cpp",
            "cwchar": "cpp",
            "cwctype": "cpp",
            "unordered_map": "cpp",
            "vector": "cpp",
            "exception": "cpp",
            "fstream": "cpp",
            "initializer_list": "cpp",
            "iosfwd": "cpp",
            "istream": "cpp",
            "limits": "cpp",
            "new": "cpp",
            "optional": "cpp",
            "ostream": "cpp",
            "sstream": "cpp",
            "stdexcept": "cpp",
            "streambuf": "cpp",
            "string_view": "cpp",
            "system_error": "cpp",
            "type_traits": "cpp",
            "tuple": "cpp",
            "typeinfo": "cpp",
            "utility": "cpp",
            "list": "cpp"
        }
    }
    

    注意把上面路径相关的替换成你自己的路径,这样就可以编译运行外加调试了。
    调试的时候鼠标悬停在变量名称上可直接查看变量的值,和VS2017一样方便。

    参考资料

    相关文章

      网友评论

          本文标题:VSCode调试Linux下C程序

          本文链接:https://www.haomeiwen.com/subject/bicqcctx.html