vscode c++调试

こ雲淡風輕ζ 提交于 2020-02-27 15:02:02

装MinGW-w64并设好环境变量

打开官方网站

点击下面的SourceForge链接

拉到最下面,这里列出的是已经编译好的MinGW-w64压缩包,选择合适的下载解压就可以用了。根据大神的文章,如果你像我一样是Windows 64位系统,推荐选择最新版本的 x86_64-win32-seh 来下载。

下载压缩文件并解压到合适的位置,在系统环境变量添加\bin目录

运行CMD或者Windows PowerShell,测试一下是否可用。命令:gcc -v

Using built-in specs.

COLLECT_GCC=gcc

COLLECT_LTO_WRAPPER=

原文链接:https://blog.csdn.net/Leo_LiangXuYuan/article/details/86763735

 

VS Code 的C/C++ 插件

VS Code 的 Code Runner 插件

 

第二步,设置C/C++配置(c_cpp_properties.json)

 

据笔者个人经验,c_cpp_properties.json文件关系到编写代码的时候能否自动查找头文件、能否显示函数或变量的提示信息和能否实时检查出代码的语法错误等,这些都需要头文件和编译器的支持。在没有c_cpp_properties.json文件的情况下,默认会使用Visual Studio的相关配置。如果现在有找不到头文件的错误提示也没有关系,可以修改一下配置文件解决。如果没有错误,可以跳过这一步或同样修改成MinGW的相关配置(与生成任务保持一致)。

F1 或 Ctrl+Shift+P: 打开命令面板。在命令面板输入e,选C/C++:Edit configurations…

VS Code 自动生成c_cpp_properties.json配置文件。

"name"是配置名字,会显示在界面的右下角。这里可以是Mac、Linux或Win32,这三个名字可以使得在不同平台自动选择不同的配置,也可以自己随便写,我写了MinGW-w64。

include目录我添加了MinGW的C++include目录,笔者发现C++的include目录就已经包含了C的include目录,那就不用重复添加C的目录了。

"defines"是预定义宏,按需修改或者就保持默认好了。

"windowsSdkVersion"也是按需修改或者保持默认好了。

"compilerPath"是编译器路径,改成MinGW的g++.exe的路径(如果写C就改成gcc.exe的路径)。

"cStandard"和"cppStandard"可以自己查一下或者保持默认就好了。

“intelliSenseMode” 选gcc-x64

//.vscode\c_cpp_properties.json

{

    "configurations": [

        {

            "name": "MinGW-w64",

            "includePath": [

                "${workspaceFolder}/**",

                "D:\\mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++",

                "D:\\mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/x86_64-w64-mingw32",

                "D:\\mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/backward",


                "D:\\mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include",

                "D:\\mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include-fixed",

                "D:\\mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/include"

            ],

            "defines": [

                "_DEBUG",

                "UNICODE",

                "_UNICODE"

            ],

            "compilerPath": "D:\\下载\\mingw64\\bin\\g++.exe",

            "cStandard": "c11",

            "cppStandard": "c++17",

            "intelliSenseMode": "clang-x64"

        }

    ],

    "version": 4

}

提示:如果不知道MinGW的include路径的话,可以运行CMD,输入指令获得:
C的include路径:gcc -v -x c -E -
C++的include路径:g++ -v -x c++ -E -

 

第四步,调试配置(launch.json)

进入调试模式,添加配置,选择C++GDB环境,它会自动生成一个launch.json文件。

launch.json需要改的地方不多,其中program和miDebuggerPath是必须更改的。

program表示可执行程序的名字,启动调试的时候按着这一条信息来找到调试的可执行程序,所以这里应该跟编译时候写的名字保持一致。

miDebuggerPath表示调试工具的路径,这里写MinGW的g++路径,如/MinGW-w64/bin/g++.exe。

externalConsole表示调试的时候是否弹出控制台窗口,如果写false,控制台窗口出现在 VS Code 界面右下方一小块区域。

"args"是调试时传给程序(main函数)的参数,平时保持空即可,需要的时候再改。"stopAtEntry"是否在程序入口处暂停。

"cwd"工作目录,调试的工作目录就是可执行程序的目录吧,保持默认好了。

"MIMode"可选gdb和lldb,这里选gdb,lldb是苹果的。

"setupCommands"里面有开启pretty-printing的指令,可以在调试的时候直观地看到STL的内容(我们真正想看到的)而不是具体的成员变量(很多多余的信息)。

改好了差不多是下面这个样子:

"configurations": [

        {

            "name": "g.exe build and debug active file",

            "type": "cppdbg",

            "request": "launch",

            "program": "${fileDirname}\\${fileBasenameNoExtension}.exe",

            "args": [],

            "stopAtEntry": false,

            "cwd": "${workspaceFolder}",

            "environment": [],

            "externalConsole": false,

            "MIMode": "gdb",

            "miDebuggerPath": "D:\\mingw64\\bin\\g++.exe",

            "setupCommands": [

                {

                    "description": "为 g++ 启用整齐打印",

                    "text": "-enable-pretty-printing",

                    "ignoreFailures": true

                }

            ],

            "preLaunchTask": "g++.exe build active file"

        }

    ]

 

新建和打开C

编辑文件

 

Code Runner直接运行不调试:

 

利用Code Runner 自动生成visual studio code的Task,用于编译

按 F1 弹出下拉框,输入(有下拉补全的):

>C/C++: build and Debug Active File

然后在弹出的下拉框选择:

g++.exe build and debug active file

 

关闭vsc,重启,打开文件夹

 

在文件中,F9设置断点

调试

同样

>C/C++: build and Debug Active File

然后在弹出的下拉框选择:

g++.exe build and debug active file

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!