无法在 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 的每一步吗?
MinGw-get.exe install gdb-python
- 安装Python2.7
- 确保环境变量上有 PYTHONPATH 和 PYTHONHOME 变量。
- 确保
%PYTHONHOME%
路径变量。
- 在 cwd 文件夹中创建
.gdbinit
文件。不要忘记更改 sys.path.insert(0, 'your\MinGw\share\gcc-x.y.z\python')
- 不要忘记更改
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下载:
我刚刚将下载的文件解压到文件夹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。
希望对您有所帮助。
问题陈述:
调试器无法提供 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 的每一步吗?
MinGw-get.exe install gdb-python
- 安装Python2.7
- 确保环境变量上有 PYTHONPATH 和 PYTHONHOME 变量。
- 确保
%PYTHONHOME%
路径变量。 - 在 cwd 文件夹中创建
.gdbinit
文件。不要忘记更改sys.path.insert(0, 'your\MinGw\share\gcc-x.y.z\python')
- 不要忘记更改
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下载:
我刚刚将下载的文件解压到文件夹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。
希望对您有所帮助。