2021-12-3 一些VScode的补充以及遇到的问题

一些VScode的补充以及遇到的问题

1.c_cpp_properties.json代码参考

c_cpp_properties.json是主要用来设置包含头文件的路径设置,C/C++的版号等等,我的代码附上,一般情况下用默认生成的就行了,路径改一下即可

{
    "configurations": [
        {
            "name": "Linux",              //环境名
            "includePath": [
                "${workspaceFolder}/**"   //指定头文件路径,这里指定的是当前工作目录,如有需要在后面添加,添加方式是加入 "/to/path" 格式的路径
            ],
            "defines": [],
            "compilerPath": "C:\\ljy\\MingGW\\mingw64\\bin\\g++.exe",   //编译器的路径,可根据自己的安装情况进行设置
            "cStandard": "c11",
            "cppStandard": "c++17",       //设置使用的 C/C++ 标准
            "intelliSenseMode": "clang-x64"
        }
    ],
    "version": 4
}

2.关于无法调试的问题

image.png

image.png

这边提示了Module containing this breakpoint has not yet loaded or the breakpoint address could not be obtained的提示(包含此断点的模块尚未装入或无法获得断点地址)

后来发现问题是我之前为了不让命令行停止,就干脆直接用命令行配置参数了,而launch.json文件中的’program‘调试的路径是命令行的路径,所以他无法调试

问题的解决办法就是把program参数改成对应文件就可以了,随后设置断点,按f5完美调试运行~~

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) 调试C",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}\\.exe\\${fileBasenameNoExtension}.exe",        //可执行文件的完整路径,文件名与 build.json 中生成的可执行文件名保持一致
            "args": [],
            "stopAtEntry": false,           //是否在 main 函数处暂定执行
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,        //在打开外部终端执行程序,而不是在 VSCode 的控制台中运行
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "C/C++: g++.exe 生成活动文件" // 调试前执行的任务,一般为编译程序。与tasks.json的label相对应
        }
    ]
}

image.png

3.使用命令行时运行完闪退的问题

第一种方法:System函数

system("pause");

在程序结尾时添加这句话就可以解决问题了。注意在return前面写即可让程序暂停下来,对于此函数讲解参考这位大佬博客的地址

第二种方法:设置断点

在程序末尾加这个也可以让程序在某一个断点处停下来,文件没有跑完,就不会闪退了。

第三种方法:用自带的Vscode环境运行

这个要因人而异,修改方法很简单,在launch.json配置文件中的

"externalConsole": true,

修改成这样即可

"externalConsole": false,
posted @ 2021-12-03 22:00  yuezi2048  阅读(18)  评论(0编辑  收藏  举报