无法在 VS Code 中检查 C++ STL 内容

Unable to Inspect C++ STL content in VS Code

问题陈述:

调试器无法提供 STL 容器的内容(即向量或字符串)。


概览:

下面是我的 launch.json,我已根据 this thread 添加了 -enable-pretty-printing,但我看不到 STL 容器的内容。

{

    "version": "0.2.0",
    "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": "C:\MinGW\bin\gdb.exe",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true,
                    
                }
            ],
            "preLaunchTask": "C/C++: g++.exe build active file"
        }
    ]
}

我什至尝试在手表中添加表情 window。但这对我也不起作用。或者也许我错过了什么。 this thread

你确定你已经完成了这个 thread 的每一步吗?

  1. MinGw-get.exe install gdb-python
  2. 安装Python2.7
  3. 确保环境变量上有 PYTHONPATH 和 PYTHONHOME 变量。
  4. 确保 %PYTHONHOME% 路径变量。
  5. 在 cwd 文件夹中创建 .gdbinit 文件。不要忘记更改 sys.path.insert(0, 'your\MinGw\share\gcc-x.y.z\python')
  6. 不要忘记更改 miDebuggerPath="your\mingw\bin\gdb-python27.exe" 而不是 miDebuggerPath="your\mingw\bin\gdb.exe"

注意:如果您使用的是 MinGW x86,请确保您安装的 Python 架构是 x86。

首先,您可能使用了 x64 Windows。

我找到了一个有效的解决方案,在 x64 Windows 中安装 MinGW 时,安装 MinGW i686 (win32) 版本(此评论底部给出了其官方下载 link)而不是 x86_64版本,见下:

win32版MinGW下载:

i686-win32-dwarf

我刚刚将下载的文件解压到文件夹D:\MinGW,然后将MinGW的bin路径D:\MinGW\i686-8.1.0-release-posix-dwarf-rt_v6-rev0\mingw32\bin添加到环境系统变量PATH

相关配置文件如下:

.vscode\tasks.json

{
    "tasks": [
        {
            // "type": "shell",
            "label": "C/C++: g++.exe build active file",
            "command": "g++",
            "args": [
                "-g",
                "${file}",
                "-o",
                "${fileDirname}\${fileBasenameNoExtension}.exe"
            ],
            "options": {
                "cwd": "${workspaceFolder}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            }
        }
    ],
    "version": "2.0.0"
}

.vscode\launch.json

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.    
    "version": "0.2.0",
    "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": "gdb",
            "setupCommands": [
                {   // Display content in STL containers pretty
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "C/C++: g++.exe build active file"
        }
    ]
}

.vscode\c_cpp_properties.json

{
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "${workspaceFolder}/**"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "windowsSdkVersion": "10.0.19041.0",
            "compilerPath": "g++", // Or complete absolute path "D:/MinGW/i686-8.1.0-release-posix-dwarf-rt_v6-rev0/mingw32/bin/g++.exe"
            "cStandard": "c11",
            "cppStandard": "c++17",
            "intelliSenseMode": "clang-x86"
        }
    ],
    "version": 4
}

我电脑的环境

VSCode Version: 1.53.2 (system setup)
OS Version: Windows 10 x64 (Windows_NT x64 10.0.19041)
MinGW version: i686-8.1.0-release-posix-dwarf-rt_v6-rev0
GDB version: 8.1.0 (Target: i686-w64-mingw32)

最初发布于 https://github.com/microsoft/vscode-cpptools/issues/3921#issuecomment-780379258

希望对您有所帮助。