VSCODE windows 上的 gdb 在调试时显示空文件

VSCODE gdb on windows show empty file on debug

我尝试使用 vscode 和 gdb 为 cpp 设置 helloworld 项目。

我用的是msys2.

一切正常,项目编译和 运行s,但我在调试它时遇到问题。

这是我的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": "${workspaceFolder}/helloworld.exe",
    "args": [],
    "stopAtEntry": true,
    "cwd": "${workspaceFolder}",
    "environment": [],
    "externalConsole": true,
    "MIMode": "gdb",
    "miDebuggerPath": "C:/msys64/usr/bin/gdb.exe",
    "setupCommands": [
      {
        "description": "Enable pretty-printing for gdb",
        "text": "-enable-pretty-printing",
        "ignoreFailures": true
      }
    ]
  }
]

}

和我的演示项目

#include <iostream>
#include <vector>
#include <string>

using namespace std;

int main(int argc, char** argv)
{

    vector<string> msg {"Hello", "C++", "World", "from", "VS Code!"};

    for (const string& word : msg)
    {
        cout << word << " ";
    }
    cout << endl;

}

但是当我 运行 调试时,它只显示空文件而不是源文件,我发现在

中创建了新文件

C:\c\Users\user\projects\helloworld\

所以那里的路径有问题。

如何解决?

我用错了 gdb。

您需要安装其他版本的gdb:

 pacman -S mingw-w64-x86_64-gdb

并使用它

"miDebuggerPath": "C:/msys64/mingw64/bin/gdb.exe",